Repository: mehdihadeli/awesome-software-architecture Branch: main Commit: 45708a314449 Files: 302 Total size: 976.9 KB Directory structure: gitextract_ywb1khq9/ ├── .github/ │ ├── FUNDING.yml │ └── workflows/ │ └── ci.yml ├── .gitignore ├── LICENSE ├── Program.cs ├── README.md ├── ReleaseNotes.csproj ├── contributing.md ├── docs/ │ ├── README.md │ ├── abstraction.md │ ├── actor-model-architecture/ │ │ ├── actor-model-architecture.md │ │ ├── akka-net.md │ │ ├── orleans.md │ │ └── protoactor.md │ ├── ai/ │ │ ├── a2a.md │ │ ├── agent-framework.md │ │ ├── agent.md │ │ ├── ai.md │ │ ├── code-assistants.md │ │ ├── embedding-vector.md │ │ ├── langchain.md │ │ ├── llms.md │ │ ├── mcp.md │ │ ├── ml.net.md │ │ ├── models/ │ │ │ ├── hugging-face.md │ │ │ ├── models.md │ │ │ ├── ollama.md │ │ │ ├── openai.md │ │ │ └── phi.md │ │ ├── prompt-engineering.md │ │ ├── rag.md │ │ └── semantic-kernel.md │ ├── algorithm.md │ ├── anti-patterns/ │ │ ├── anti-patterns.md │ │ ├── big-ball-of-mud.md │ │ ├── code-smells.md │ │ ├── god-object.md │ │ ├── leaky-abstractions.md │ │ ├── partial-object.md │ │ └── static-cling.md │ ├── architectural-design-principles/ │ │ ├── architectural-design-principles.md │ │ ├── cap.md │ │ ├── cohesion.md │ │ ├── coupling.md │ │ ├── cqs.md │ │ ├── cross-cutting-concerns.md │ │ ├── dependency-inversion.md │ │ ├── dry.md │ │ ├── encapsulation.md │ │ ├── fail-fast.md │ │ ├── favor-composition-over-inheritance.md │ │ ├── grasp.md │ │ ├── interface-segregation.md │ │ ├── inversion-control.md │ │ ├── kiss.md │ │ ├── open-closed-principles.md │ │ ├── persistence-ignorance.md │ │ ├── single-responsibility.md │ │ ├── solid.md │ │ └── yagni.md │ ├── architecture-documententation.md │ ├── azure/ │ │ ├── aks.md │ │ ├── azure-api-management.md │ │ ├── azure-app-service-plan.md │ │ ├── azure-app-service.md │ │ ├── azure-arc.md │ │ ├── azure-cloud.md │ │ ├── azure-configuration.md │ │ ├── azure-functions.md │ │ ├── azure-load-balancing.md │ │ ├── azure-logic-app.md │ │ ├── azure-resource-manager.md │ │ ├── azure-resource.md │ │ ├── azure-security/ │ │ │ ├── azure-active-directory.md │ │ │ └── azure-key-vault.md │ │ ├── azure-sql.md │ │ ├── index.md │ │ ├── messaging/ │ │ │ ├── azure-event-grid.md │ │ │ ├── azure-event-hub.md │ │ │ ├── azure-queue.md │ │ │ ├── azure-service-bus.md │ │ │ ├── azure-web-pub-sub.md │ │ │ └── messaging.md │ │ ├── nosql/ │ │ │ ├── azure-nosql.md │ │ │ └── cosmosdb.md │ │ ├── service-fabric.md │ │ └── storage/ │ │ ├── blob.md │ │ ├── file.md │ │ ├── queue.md │ │ ├── storage.md │ │ └── table.md │ ├── back-pressure.md │ ├── caching.md │ ├── clean-architecture.md │ ├── clean-code.md │ ├── cloud-best-practices.md │ ├── cloud-design-patterns/ │ │ ├── ambassador-pattern.md │ │ ├── anti-corruption-layer-pattern.md │ │ ├── bff.md │ │ ├── bulkhead-pattern.md │ │ ├── circuit-breaker.md │ │ ├── cloud-design-patterns.md │ │ ├── exactly-one-delivery.md │ │ ├── gateway-aggregation.md │ │ ├── gateway-pattern.md │ │ ├── inbox-pattern.md │ │ ├── outbox-pattern.md │ │ ├── sidecar.md │ │ └── strangler-fig-pattern.md │ ├── cloud-native.md │ ├── code-review.md │ ├── concurrency.md │ ├── cqrs.md │ ├── data-driven-design.md │ ├── database/ │ │ ├── nosql/ │ │ │ ├── cosmosdb.md │ │ │ ├── documentdb.md │ │ │ ├── mongodb.md │ │ │ ├── nosql.md │ │ │ └── ravendb.md │ │ ├── relational/ │ │ │ ├── postgres.md │ │ │ ├── relational-database.md │ │ │ └── sql.md │ │ ├── replication.md │ │ └── sharding.md │ ├── design-best-practices/ │ │ ├── 12-factor.md │ │ ├── design-best-practices.md │ │ └── thin-controllers.md │ ├── design-patterns/ │ │ ├── adapter-pattern.md │ │ ├── builder.md │ │ ├── chain-of-responsibility.md │ │ ├── command-message-pattern.md │ │ ├── command-pattern.md │ │ ├── decorator-pattern.md │ │ ├── design-patterns.md │ │ ├── factory-pattern.md │ │ ├── mediator-pattern.md │ │ ├── observer.md │ │ ├── query-object-pattern.md │ │ ├── repository-pattern.md │ │ ├── repr.md │ │ ├── service-locator.md │ │ ├── singleton.md │ │ ├── specification-pattern.md │ │ ├── state-pattern.md │ │ ├── strategy-pattern.md │ │ └── transaction-script-pattern.md │ ├── devops/ │ │ ├── ci-cd/ │ │ │ ├── azure-devops.md │ │ │ ├── github-actions.md │ │ │ └── jenkins.md │ │ ├── containerd.md │ │ ├── docker/ │ │ │ ├── docker-compose.md │ │ │ └── docker.md │ │ ├── gitops.md │ │ ├── kubernetes/ │ │ │ ├── debuging-development.md │ │ │ ├── deployment-strategies.md │ │ │ ├── deployment-tools/ │ │ │ │ ├── argo-cd.md │ │ │ │ ├── flux.md │ │ │ │ ├── helm.md │ │ │ │ ├── jenkins.md │ │ │ │ ├── kubernetes-operator.md │ │ │ │ └── kustomize.md │ │ │ ├── ingress-controller/ │ │ │ │ ├── ingress-controller.md │ │ │ │ ├── nginx-ingress.md │ │ │ │ └── traefik-ingress.md │ │ │ ├── kubernetes.md │ │ │ ├── other-tools/ │ │ │ │ ├── garden.md │ │ │ │ ├── k3s.md │ │ │ │ ├── mirrord.md │ │ │ │ ├── okteto.md │ │ │ │ ├── skaffold.md │ │ │ │ ├── telepresence.md │ │ │ │ └── tilt.md │ │ │ └── services.md │ │ └── terminal/ │ │ ├── bash.md │ │ └── powershell.md │ ├── distributed-locking.md │ ├── distributed-transactions.md │ ├── domain-driven-design/ │ │ ├── aggregation.md │ │ ├── anemic-domain-model.md │ │ ├── application-service.md │ │ ├── bounded-context.md │ │ ├── domain-driven-design.md │ │ ├── domain-events.md │ │ ├── domain-primitives.md │ │ ├── domain-service.md │ │ ├── domain.md │ │ ├── enums.md │ │ ├── exception-and-validation.md │ │ ├── infrastructure.md │ │ ├── integration-event.md │ │ ├── mapping.md │ │ ├── orm/ │ │ │ └── ef.md │ │ ├── rich-domain-model.md │ │ ├── strategic-design-patterns.md │ │ ├── tactical-design-patterns.md │ │ └── value-objects.md │ ├── event-driven-architecture.md │ ├── event-sourcing.md │ ├── eventual-consistency.md │ ├── functional.md │ ├── grpc.md │ ├── hexagonal-architecture.md │ ├── iaas/ │ │ ├── ansible.md │ │ ├── iaas.md │ │ ├── nomad.md │ │ ├── pulumi.md │ │ └── terraform.md │ ├── ids.md │ ├── messaging/ │ │ ├── async-api-documentation.md │ │ ├── change-data-capture.md │ │ ├── kafka.md │ │ ├── messaging-patterns.md │ │ ├── messaging.md │ │ ├── nats.md │ │ ├── rabbitmq.md │ │ └── zeromq.md │ ├── micro-frontend.md │ ├── microservices/ │ │ ├── api-gateway/ │ │ │ ├── ambassador.md │ │ │ ├── api-gateway.md │ │ │ ├── kong.md │ │ │ └── ocelot.md │ │ ├── communication.md │ │ ├── composite-ui.md │ │ ├── microservices.md │ │ ├── observability/ │ │ │ ├── correlationId.md │ │ │ ├── diagnostics.md │ │ │ ├── distributed-tracing.md │ │ │ ├── logging.md │ │ │ ├── monitoring.md │ │ │ ├── observability.md │ │ │ └── tools/ │ │ │ ├── efk.md │ │ │ ├── elk.md │ │ │ ├── fluent-bit.md │ │ │ ├── fluentd.md │ │ │ └── loki.md │ │ ├── resiliency/ │ │ │ ├── high-availibility.md │ │ │ ├── idempotency.md │ │ │ └── resiliency.md │ │ ├── security/ │ │ │ ├── security.md │ │ │ └── vault.md │ │ ├── services-boundries.md │ │ ├── testing.md │ │ └── tools/ │ │ ├── aspire.md │ │ ├── cap.md │ │ ├── dapr.md │ │ ├── mass-transit.md │ │ ├── nservicebus.md │ │ ├── steeltoe.md │ │ ├── tye.md │ │ └── wolverine.md │ ├── modeling/ │ │ ├── architecture-diagram.md │ │ ├── class-diagram.md │ │ ├── component-diagram.md │ │ ├── conceptual-modeling.md │ │ ├── data-model-notations.md │ │ ├── domain-stroytelling.md │ │ ├── er-diagrams.md │ │ ├── event-modeling.md │ │ ├── event-storming.md │ │ ├── index.md │ │ ├── logical-modeling.md │ │ ├── modeling.md │ │ ├── physical-modeling.md │ │ ├── relationship.md │ │ ├── tools.md │ │ └── use-case-diagram.md │ ├── modular-monolith.md │ ├── object-oriented-design.md │ ├── onion-architecture.md │ ├── open-source.md │ ├── others.md │ ├── paas/ │ │ ├── heroku.md │ │ ├── netlify.md │ │ ├── openshift.md │ │ └── rancher.md │ ├── refactoring.md │ ├── rest.md │ ├── reverse-proxy-lb/ │ │ ├── envoy.md │ │ ├── fabio.md │ │ ├── haproxy.md │ │ ├── load-balancing.md │ │ ├── metallb.md │ │ ├── nginx.md │ │ ├── reverse-proxy.md │ │ ├── traefik.md │ │ └── yarp.md │ ├── scaling.md │ ├── serverless.md │ ├── service-discovery/ │ │ ├── consul.md │ │ ├── eureka.md │ │ └── service-discovery.md │ ├── service-mesh/ │ │ ├── istio.md │ │ ├── linkerd.md │ │ ├── maesh.md │ │ └── service-mesh.md │ ├── service-oriented-architecture.md │ ├── software-architecture.md │ ├── systems-design/ │ │ ├── consistent-hash.md │ │ └── systems-design.md │ ├── type-driven-design.md │ └── vertical-slice-architecture.md └── mkdocs.yml ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/FUNDING.yml ================================================ ================================================ FILE: .github/workflows/ci.yml ================================================ name: CI on: push: branches: - main jobs: link-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - uses: gaurav-nelson/github-action-markdown-link-check@v1 build: name: Deploy docs runs-on: ubuntu-latest steps: - name: Checkout master uses: actions/checkout@v2 #https://github.com/mhausenblas/mkdocs-deploy-gh-pages - name: Deploy MkDocs uses: mhausenblas/mkdocs-deploy-gh-pages@master env: GITHUB_TOKEN: ${{ secrets.PERSONAL_TOKEN }} CUSTOM_DOMAIN: awesome-architecture.com ================================================ FILE: .gitignore ================================================ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files *.rsuser *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Mono auto generated files mono_crash.* # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ [Ll]ogs/ # Visual Studio 2015/2017 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ # Visual Studio 2017 auto generated files Generated\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUnit *.VisualState.xml TestResult.xml nunit-*.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ # .NET Core project.lock.json project.fragment.lock.json artifacts/ # StyleCop StyleCopReport.xml # Files built by Visual Studio *_i.c *_p.c *_h.h *.ilk *.meta *.obj *.iobj *.pch *.pdb *.ipdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *_wpftmp.csproj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # Visual Studio Trace Files *.e2e # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # NuGet Symbol Packages *.snupkg # The packages folder can be ignored because of Package Reecommerce **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/[Pp]ackages/repositories.config # NuGet v3's project.json files produces more ignorable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ AppPackages/ BundleArtifacts/ _pkginfo.txt *.appx *.appxbundle *.appxupload # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !?*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.jfm *.pfx *.publishsettings orleans.codegen.cs # Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ *.rptproj.bak # SQL Server files *.mdf *.ldf *.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings *.rptproj.rsuser *- [Bb]ackup.rdl *- [Bb]ackup ([0-9]).rdl *- [Bb]ackup ([0-9][0-9]).rdl # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat node_modules/ # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # CodeRush personal settings .cr/personal # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc # Cake - Uncomment if you are using it # tools/** # !tools/packages.config # Tabs Studio *.tss # Telerik's JustMock configuration file *.jmconfig # BizTalk build output *.btp.cs *.btm.cs *.odx.cs *.xsd.cs # OpenCover UI analysis results OpenCover/ # Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log *.binlog # NVidia Nsight GPU debugger configuration file *.nvuser # MFractors (Xamarin productivity tool) working folder .mfractor/ # Local History for Visual Studio .localhistory/ # BeatPulse healthcheck temp database healthchecksdb # Backup folder for Package Reference Convert tool in Visual Studio 2017 MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ .tye/ .logs/ .Log out/ **/.vagrant/ .idea/ local/data/ portainer-data/ docker.sock/ localtime/ coveragereport/ CoverageResults/ coverage.cobertura.xml coverage.info # Local History for Visual Studio Code .history/ # Built Visual Studio Code Extensions *.vsix # exclude sensitive env files .env .env.dev .denv.prod .env.catalogs .env.customers .env.identity # exclude keys directory keys/ ================================================ FILE: LICENSE ================================================ Creative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. ================================================ FILE: Program.cs ================================================ using System; using System.Collections.Generic; using System.Diagnostics; using System.Text.RegularExpressions; class Program { static readonly Regex SectionRegex = new(@"^\+\s*##\s+(.*)"); static readonly Regex ItemRegex = new(@"^[+-]\s*-\s*(.*)"); static void Main(string[] args) { // Default: last commit string commitRange = args.Length > 0 ? args[0] : "HEAD~1..HEAD"; var diffLines = RunGitDiff(commitRange); var notes = ParseDiff(diffLines); PrintReleaseNotes(notes); } static List RunGitDiff(string range) { var process = new Process { StartInfo = new ProcessStartInfo { FileName = "git", Arguments = $"diff {range}", RedirectStandardOutput = true, UseShellExecute = false, CreateNoWindow = true } }; process.Start(); var lines = new List(); while (!process.StandardOutput.EndOfStream) { lines.Add(process.StandardOutput.ReadLine()!); } process.WaitForExit(); return lines; } static Dictionary>>> ParseDiff( List lines) { var notes = new Dictionary>>>(); string? currentFile = null; string? currentSection = null; foreach (var line in lines) { if (line.StartsWith("diff --git")) { currentFile = null; currentSection = null; continue; } if (line.StartsWith("+++ b/") && line.EndsWith(".md")) { currentFile = line.Replace("+++ b/", ""); notes.TryAdd(currentFile, new()); continue; } if (currentFile != null && SectionRegex.IsMatch(line)) { currentSection = SectionRegex.Match(line).Groups[1].Value; notes[currentFile].TryAdd(currentSection, new()); continue; } if (currentFile != null && currentSection != null && ItemRegex.IsMatch(line)) { var item = ItemRegex.Match(line).Groups[1].Value; var changeType = line.StartsWith("+") ? "Added" : "Removed"; if (!notes[currentFile][currentSection].ContainsKey(changeType)) { notes[currentFile][currentSection][changeType] = new(); } notes[currentFile][currentSection][changeType].Add(item); } } return notes; } static void PrintReleaseNotes( Dictionary>>> notes) { foreach (var file in notes) { var title = System.IO.Path.GetFileNameWithoutExtension(file.Key) .Replace("-", " "); title = char.ToUpper(title[0]) + title[1..]; Console.WriteLine($"\n## {title}\n"); foreach (var section in file.Value) { Console.WriteLine($"### {section.Key}"); foreach (var change in section.Value) { Console.WriteLine($"**{change.Key}**"); foreach (var item in change.Value) { Console.WriteLine($"- {item}"); } } Console.WriteLine(); } } } } ================================================ FILE: README.md ================================================

Awesome Software Architecture
build-status awesome license

> Curated list of awesome articles and resources to learn and practice software architecture, patterns and principles. This repository will be updated continuously, keep yourself up to date . I created this repository to share a set of links that I found valuable and inspiring and I share them with others to improve our knowledge together ✌️. > **🚀 Go ahead to the official web page here:** > **🌐 [https://awesome-architecture.com](https://awesome-architecture.com/)** --- ## Contents - [Contents](#contents) - [Software Architecture](#software-architecture) - [Actor Model Architecture](#actor-model-architecture) - [Algorithms](#algorithms) - [AI](#ai) - [Clean Architecture](#clean-architecture) - [Onion Architecture](#onion-architecture) - [Hexagonal Architecture](#hexagonal-architecture) - [Vertical Slice Architecture](#vertical-slice-architecture) - [Event Driven Architecture](#event-driven-architecture) - [Service Oriented Architecture](#service-oriented-architecture) - [Domain Driven Design](#domain-driven-design) - [Data Driven Design](#data-driven-design) - [CQRS](#cqrs) - [Microservices](#microservices) - [Modular Monolith](#modular-monolith) - [Architectural Design Principles](#architectural-design-principles) - [Design Patterns](#design-patterns) - [Cloud Design Patterns](#cloud-design-patterns) - [Cloud Best Practices](#cloud-best-practices) - [Cloud Native](#cloud-native) - [Platform as a Service](#platform-as-a-service) - [Infrastructure as a Service](#infrastructure-as-a-service) - [DevOps](#devops) - [Reverse Proxy - Load Balancing](#reverse-proxy---load-balancing) - [Service Discovery And Registry](#service-discovery-and-registry) - [Service Mesh](#service-mesh) - [Object Oriented Design](#object-oriented-design) - [Systems Design](#systems-design) - [Scaling](#scaling) - [Back Pressure](#back-pressure) - [Clean Code](#clean-code) - [Abstraction](#abstraction) - [Design Best Practices](#design-best-practices) - [Anti Patterns](#anti-patterns) - [Eventual Consistency](#eventual-consistency) - [Messaging](#messaging) - [Distributed Transactions](#distributed-transactions) - [Distributed Locking](#distributed-locking) - [Eventual Consistency](#eventual-consistency-1) - [RESTful API Design](#restful-api-design) - [gRPC](#grpc) - [Caching](#caching) - [Functional Programming](#functional-programming) - [Concurrency](#concurrency) - [Sharding](#sharding) - [Refactoring](#refactoring) - [Database](#database) - [Relational Database](#relational-database) - [Microsoft Azure Cloud](#microsoft-azure-cloud) - [Modeling](#modeling) - [Open Source](#open-source) - [Code Review](#code-review) - [Micro-Frontend](#micro-frontend) - [Others](#others) - [🙏 Special Thanks](#-special-thanks) - [⭐ Support](#-support) - [🤝 Contribution](#-contribution) > **Note**: Bellow contents is not complete yet and it's in progress, and I will complete the **descriptions** over the time, but you are feel free to [contribute](contributing.md) this part. ### Software Architecture | Topic | Description | | :----------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------ | | [Software Architecture](docs/software-architecture.md) | Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. | ### Actor Model Architecture | Topic | Description | | :-----------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Actor Model Architecture](docs/actor-model-architecture/actor-model-architecture.md) | The Actor Model is a programming paradigm in which the basic unit of execution is the actor. In the Actor Model, an actor does work by using messages to express actions upon a system or other actors within the given system | | [Akka .NET](docs/actor-model-architecture/akka-net.md) | Akka.NET is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on .NET. | | [Microsoft Orleans](docs/actor-model-architecture/orleans.md) | Orleans is a cross-platform framework for building robust, scalable distributed applications. | | [ProtoActor](docs/actor-model-architecture/protoactor.md) | Ultra fast distributed actors for Go, C# and Java/Kotlin. | ### Algorithms | Topic | Description | | :-----------------------------: | :---------------------------------------------------------------------------------- | | [Algorithms](docs/algorithm.md) | An algorithm is a procedure used for solving a problem or performing a computation. | ### AI | Topic | Description | | :------------------------: | :----------------------------------- | | [AI](docs/ai/ai.md) | Artificial intelligence topics | | [AI - RAG](docs/ai/rag.md) | Retrieval-Augmented Generation (RAG) | ### Clean Architecture | Topic | Description | | :----------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | [Clean Architecture](docs/clean-architecture.md) | The Clean Architecture is the system architecture guideline proposed by Robert C. Martin (Uncle Bob) derived from many architectural guidelines like Hexagonal Architecture, Onion Architecture, etc... | ### Onion Architecture | Topic | Description | | :----------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Onion Architecture](docs/onion-architecture.md) | The Onion architecture, introduced by Jeffrey Palermo, and it is a form of layered architecture and we can visualize these layers as concentric circles. | ### Hexagonal Architecture | Topic | Description | | :------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Hexagonal Architecture](docs/hexagonal-architecture.md) | The Hexagonal Architecture or Ports and Adapters architecture, introduced by Alistair Cockburn and it's an architectural pattern that allows input by users or external systems to arrive into the Application at a Port via an Adapter, and allows output to be sent out from the Application through a Port to an Adapter. | ### Vertical Slice Architecture | Topic | Description | | :----------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Vertical Slice Architecture](docs/vertical-slice-architecture.md) | The vertical slice architecture is a technique that helps us build maintainable applications by separating the application around features or `vertical slices`. | ### Event Driven Architecture | Topic | Description | | :------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Event Driven Architecture](docs/event-driven-architecture.md) | Event-driven architecture is a software design pattern in which decoupled applications can asynchronously publish and subscribe to events via an event broker. | ### Service Oriented Architecture | Topic | Description | | :--------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Service Oriented Architecture](docs/service-oriented-architecture.md) | Service Oriented Architecture (SOA) is a software architecture design pattern in which application components provide services to other components using a communication protocol over a network. SOA aims to achieve loose coupling between software components, allowing them to be easily replaced or updated without affecting the rest of the system. | ### Domain Driven Design | Topic | Description | | :---------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Domain Driven Design](docs/domain-driven-design/domain-driven-design.md) | The key concepts and principles of Domain Driven Design, which emphasizes the importance of building a software system around a shared understanding of the business domain and the use of ubiquitous language. | | [Value Objects](docs/domain-driven-design/value-objects.md) | The concept of value objects in Domain Driven Design, which are immutable objects that represent a concept or measurement and are characterized by their value, rather than their identity. | | [Aggregation](docs/domain-driven-design/aggregation.md) | The concept of aggregation in Domain Driven Design, which is a way of grouping objects together to form a logical unit that can be treated as a single entity. | | [Anemic Domain Model](docs/domain-driven-design/anemic-domain-model.md) | The Anemic Domain Model anti-pattern in Domain Driven Design, which refers to a model where the domain objects contain little or no behavior and the business logic is instead implemented in separate services. | | [Rich Domain Model](docs/domain-driven-design/rich-domain-model.md) | The Rich Domain Model pattern in Domain Driven Design, which advocates for placing behavior and business logic in the domain objects themselves, rather than in separate services. | | [Domain Model](docs/domain-driven-design/domain.md) | The Domain Model concept in Domain Driven Design, which is a representation of the core concepts, entities, and relationships that make up a business domain. | | [Domain Service](docs/domain-driven-design/domain-service.md) | The Domain Service concept in Domain Driven Design, which is a stateless, transactional operation that performs a business task and is not associated with any specific entity. | | [Application Service](docs/domain-driven-design/application-service.md) | The Application Service concept in Domain Driven Design, which is responsible for coordinating the execution of multiple domain services to achieve a higher-level business goal. | | [Domain Events](docs/domain-driven-design/domain-events.md) | The Domain Events concept in Domain Driven Design, which are messages that represent a significant occurrence within the business domain and can be used to trigger downstream processes or updates to other systems. | | [Integration Events](docs/domain-driven-design/integration-event.md) | The Integration Events concept in Domain Driven Design, which are messages that represent a significant occurrence in the context of an external system and can be used to trigger downstream processes or updates to the local system. | | [Bounded Context](docs/domain-driven-design/bounded-context.md) | The Bounded Context concept in Domain Driven Design, which is a way of dividing a large, complex business domain into smaller, more manageable parts that are defined by a common language, context, and set of boundaries. | | [Infrastructure](docs/domain-driven-design/infrastructure.md) | The Infrastructure concept in Domain Driven Design, which includes all the components and systems that support the operation of the application, such as databases, message brokers, and third-party services. | | [Tactical Design Patterns](docs/domain-driven-design/tactical-design-patterns.md) | The Tactical Design Patterns in Domain Driven Design, which are recurring solutions to common problems that arise when building domain models, services, and repositories. | | [Strategic Design Patterns](docs/domain-driven-design/strategic-design-patterns.md) | The Strategic Design Patterns in Domain Driven Design, which are high-level principles and patterns that guide the overall architecture and organization of a large, complex software system. | | [Mappings](docs/domain-driven-design/mapping.md) | The concept of mappings in Domain Driven Design, which are the mechanisms used to transform data between the domain model and other parts of the system, such as the database or user interface. | | [Domain Primitives](docs/domain-driven-design/domain-primitives.md) | The Domain Primitives concept in Domain Driven Design, which are simple, immutable value types that represent basic concepts in the domain, such as dates, times, and quantities. | | [Enum](docs/domain-driven-design/enums.md) | The Enum concept in Domain Driven Design, which is a special type of domain primitive that represents a discrete set of values. | | [Exception and Validation](docs/domain-driven-design/exception-and-validation.md) | The concepts of exception handling and validation in Domain Driven Design, which are important mechanisms for ensuring the correctness and robustness of the application. | ### Data Driven Design | Topic | Description | | :----------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Data Driven Design](docs/data-driven-design.md) | Data-Driven Design is a software development methodology that emphasizes the use of data and analytics to inform design decisions. It involves collecting, analyzing, and using data to create and improve software products, services, and experiences. This approach relies on empirical evidence to guide design choices, and it requires a strong data infrastructure and analytics capabilities. Data-Driven Design can help organizations create more effective, efficient, and user-friendly products and services by making informed decisions based on real-world data. It can also lead to better customer engagement, increased revenue, and improved user satisfaction. | ### CQRS | Topic | Description | | :------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [CQRS](docs/cqrs.md) | CQRS (Command Query Responsibility Segregation) is a design pattern that separates the concerns of command execution and data querying in a system. The basic idea behind CQRS is to split the application model into two separate models: one for reading data and another for writing data. This allows the two models to be optimized for their specific purposes, and provides benefits such as better scalability, performance, and maintainability. The CQRS pattern is often used in conjunction with event sourcing, which is a technique for capturing all changes to an application state as a sequence of events. Together, CQRS and event sourcing can provide a powerful way to build highly scalable and fault-tolerant systems. | ### Microservices | Topic | Description | | :--------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Microservices](docs/microservices/microservices.md) | A brief introduction to the concept of microservices, including their benefits and drawbacks, as well as common characteristics of microservices architecture. | | [Communication](docs/microservices/communication.md) | An overview of the different communication patterns and protocols that can be used in microservices architecture, such as synchronous vs. asynchronous communication, REST vs. message-based communication, and the use of service buses. | | [Composite UI](docs/microservices/composite-ui.md) | A discussion of the Composite UI pattern, which involves combining multiple microservices into a single user interface, and the different approaches to implementing it, such as server-side composition vs. client-side composition. | | [Service Boundaries](docs/microservices/services-boundries.md) | An exploration of how to define and enforce service boundaries in microservices architecture, including strategies for identifying service boundaries and techniques for implementing them, such as domain-driven design and bounded contexts. | | [Testing](docs/microservices/testing.md) | A guide to testing microservices, including strategies for testing individual services and testing the interactions between services, as well as tools and frameworks for testing microservices. | | [API Gateway](docs/microservices/api-gateway/api-gateway.md) | An introduction to the concept of an API Gateway, which acts as a single entry point for clients to access multiple microservices, and the benefits and drawbacks of using an API Gateway. | | [API Gateway - Ambassador](docs/microservices/api-gateway/ambassador.md) | A specific implementation of an API Gateway using the Ambassador open-source project, including an overview of its features and how to configure and deploy it. | | [API Gateway - Kong](docs/microservices/api-gateway/kong.md) | A specific implementation of an API Gateway using the Kong open-source project, including an overview of its features and how to configure and deploy it. | | [API Gateway - Ocelot](docs/microservices/api-gateway/ocelot.md) | A specific implementation of an API Gateway using the Ocelot open-source project, including an overview of its features and how to configure and deploy it. | | [Observability](docs/microservices/observability/observability.md) | An exploration of the concept of observability in microservices architecture, which involves the ability to monitor and debug distributed systems, and the different techniques and tools for achieving observability, such as logging, tracing, health checks ,and monitoring. | | [Observability - Distributed Tracing](docs/microservices/observability/distributed-tracing.md) | A deep dive into the use of distributed tracing as a tool for achieving observability in microservices architecture, including an overview of how distributed tracing works, common tracing frameworks, and how to instrument microservices for tracing. | | [Observability - Monitoring](docs/microservices/observability/monitoring.md) | An overview of the different types of monitoring that can be used in microservices architecture, such as system monitoring, application monitoring, and business monitoring, and the different tools and approaches for monitoring microservices. | | [Observability - Diagnostics](docs/microservices/observability/diagnostics.md) | An overview of the different techniques and tools for diagnosing and debugging issues in microservices architecture, including log analysis. | | [Observability - Logging](docs/microservices/observability/logging.md) | Logging is an important aspect of observability in microservices architecture. This topic covers different logging frameworks and strategies used for monitoring and troubleshooting distributed systems. | | [Observability - CorrelationId](docs/microservices/observability/correlationId.md) | Correlation ID is a technique used to track requests across multiple microservices. This topic explains what Correlation ID is and how it is implemented in a distributed system. | | [Observability - Tools - EFK](docs/microservices/observability/tools/efk.md) | EFK stack (Elasticsearch, Fluentd, and Kibana) is a popular logging and observability solution. This topic covers the basics of EFK, how it works, and how to set it up in a microservices architecture. | | [Observability - Tools - ELK](docs/microservices/observability/tools/elk.md) | ELK stack (Elasticsearch, Logstash, and Kibana) is another popular logging and observability solution. This topic covers the basics of ELK, how it works, and how to set it up in a microservices architecture. | | [Observability - Tools - Fluent Bit](docs/microservices/observability/tools/fluent-bit.md) | Fluent Bit is a lightweight and efficient log processor and forwarder. This topic covers the basics of Fluent Bit, how it works, and how to set it up in a microservices architecture. | | [Observability - Tools - FluentD](docs/microservices/observability/tools/fluentd.md) | Fluentd is an open-source log collector and aggregator. This topic covers the basics of Fluentd, how it works, and how to set it up in a microservices architecture. | | [Observability - Tools - Loki](docs/microservices/observability/tools/loki.md) | Loki is a horizontally-scalable, highly-available log aggregation system. This topic covers the basics of Loki, how it works, and how to set it up in a microservices architecture. | | [Resiliency](docs/microservices/resiliency/resiliency.md) | Resiliency is the ability of a system to recover from failures and continue functioning. This topic covers different resiliency patterns and strategies used for building fault-tolerant microservices. | | [Resiliency - Idempotency](docs/microservices/resiliency/idempotency.md) | Idempotency is a technique used to ensure that an operation can be safely retried without causing unintended effects. This topic explains what idempotency is and how it can be implemented in a microservices architecture. | | [Resiliency - High Availability](docs/microservices/resiliency/high-availibility.md) | High availability is a property of a system that ensures it remains operational even in the face of hardware or software failures. This topic covers different high availability patterns and strategies used for building fault-tolerant microservices. | | [Security](docs/microservices/security/security.md) | Security is a critical aspect of any distributed system. This topic covers different security challenges and strategies used for securing microservices. | | [Security - Key Vault](docs/microservices/security/vault.md) | A key vault is a secure storage location for storing cryptographic keys, certificates, and secrets used by a microservices architecture. This topic explains what a key vault is and how to use it to securely manage sensitive data in a microservices | | [Tools - CAP](docs/microservices/tools/cap.md) | CAP (short for "CAPability") is a distributed transaction solution for microservices that is based on the idea of eventual consistency. It provides an event bus with an Outbox pattern, which allows you to publish messages/events to multiple microservices in a reliable and transactional way. CAP is written in .NET Core | | [Tools - Dapr](docs/microservices/tools/dapr.md) | Dapr (Distributed Application Runtime) is an open-source framework for building microservices-based applications. It provides a set of building blocks, such as state management, pub/sub messaging, and service-to-service invocation, that help developers to focus on writing business logic rather than infrastructure code. Dapr is designed to be language-agnostic and can be used with any programming language and any cloud or edge environment. This topic covers the key features of Dapr and how to use it to build distributed applications. | | [Tools - Mass Transit](docs/microservices/tools/mass-transit.md) | Mass Transit is an open-source distributed application framework for .NET. It provides a set of abstractions and building blocks for building scalable and fault-tolerant microservices-based applications. Mass Transit supports various messaging technologies, such as RabbitMQ, ActiveMQ, and Azure Service Bus, and provides features such as request-response, pub/sub messaging, and message routing. This topic covers the key features of Mass Transit and how to use it to build distributed applications. | | [Tools - NService Bus](docs/microservices/tools/nservice-bus.md) | NService Bus is a commercial distributed application framework for .NET. It provides a set of abstractions and building blocks for building scalable and reliable microservices-based applications. NService Bus supports various messaging technologies, such as RabbitMQ, Azure Service Bus, and Amazon SQS, and provides features such as request-response, pub/sub messaging, and message routing. This topic covers the key features of NService Bus and how to use it to build distributed applications. | | [Tools - SteelToe](docs/microservices/tools/steeltoe.md) | Steeltoe is an open-source framework for building .NET microservices-based applications that run on Cloud Foundry and Kubernetes. Steeltoe provides a set of libraries and building blocks, such as service discovery, circuit breakers, and security, that help developers to build and operate cloud-native applications. Steeltoe is designed to be modular and can be used with any .NET framework, such as ASP.NET, .NET Core, and .NET Framework. This topic covers the key features of Steeltoe and how to use it to build cloud-native applications. | | [Tools - Tye](docs/microservices/tools/tye.md) | Tye is an open-source development tool for building, testing, and deploying microservices-based applications. Tye provides a simple and fast way to develop and run applications locally using containers, without the need to manage the infrastructure. Tye supports various programming languages, such as .NET, Java, and Node.js, and integrates with popular tools such as Docker, Kubernetes, and Helm. This topic covers the key features of Tye and how to use it to develop and deploy microservices-based applications locally. | | [Tools - wolverine](docs/microservices/tools/wolverine.md) | Wolverine is an open-source project that provides a next-generation command and message bus for .NET. It allows developers to build scalable and distributed applications by enabling communication between different parts of the application through a message-based architecture. Wolverine is built on top of the Jasper Framework and provides features such as distributed command routing, message serialization, and versioning. It supports both synchronous and asynchronous message handling, and can be used with various transport protocols such as HTTP, RabbitMQ, and Azure Service Bus. | ### Modular Monolith | Topic | Description | | :------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Modular Monolith](docs/modular-monolith.md) | Modular Monolith is an architectural approach that combines the advantages of monolithic and microservices architectures. It aims to build a monolithic application with a modular design that allows it to be divided into smaller, more manageable parts, each with its own clear responsibilities and interfaces. This approach allows teams to develop and deploy features independently, while still maintaining a single codebase and database. The modular design also facilitates the testing and maintenance of the application, as well as the scaling of individual modules. | ### Architectural Design Principles | Topic | Description | | :--------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Architectural Design Principles](docs/architectural-design-principles/architectural-design-principles.md) | A comprehensive overview of the most important principles that should be considered when designing software architecture. | | [CAP](docs/architectural-design-principles/cap.md) | The CAP theorem, which describes the trade-offs that must be made in distributed systems between consistency, availability, and partition tolerance. | | [Cohesion](docs/architectural-design-principles/cohesion.md) | The concept of cohesion, which refers to the degree to which the elements within a module or component are related and work together to achieve a single purpose. | | [Coupling](docs/architectural-design-principles/coupling.md) | The concept of coupling, which refers to the degree to which one module or component depends on another. | | [Command Query Separation](docs/architectural-design-principles/cqs.md) | The Command Query Separation (CQS) principle, which recommends that methods should either change the state of an object (commands) or return a value (queries), but not both. | | [Cross Cutting Concerns](docs/architectural-design-principles/cross-cutting-concerns.md) | Cross-cutting concerns are features or requirements that cut across multiple components or modules in a system, such as security, logging, or transaction management. | | [Dependency Inversion](docs/architectural-design-principles/dependency-inversion.md) | The Dependency Inversion principle, which states that high-level modules should not depend on low-level modules, but both should depend on abstractions. | | [DRY](docs/architectural-design-principles/dry.md) | The Don't Repeat Yourself (DRY) principle, which states that code should not be duplicated within a system, but instead should be abstracted into reusable functions or modules. | | [Encapsulation](docs/architectural-design-principles/encapsulation.md) | Encapsulation is the principle of hiding implementation details of an object or module from its users, and providing a well-defined interface for interacting with it. | | [Fail Fast Design Principles](docs/architectural-design-principles/fail-fast.md) | Fail-fast design principles aim to reduce the impact of errors and failures in a system, by detecting them as early as possible and stopping the execution of the system before the error propagates further. | | [Composition Over Inheritance](docs/architectural-design-principles/favor-composition-over-inheritance.md) | The Composition over Inheritance principle, which recommends favoring composition (building complex objects by combining simpler ones) over inheritance (creating new classes by extending existing ones) when designing object-oriented software. | | [GRASP](docs/architectural-design-principles/grasp.md) | The General Responsibility Assignment Software Patterns (GRASP) are a set of guidelines for assigning responsibilities to objects and modules in a software system. | | [Interface Segregation](docs/architectural-design-principles/interface-segregation.md) | The Interface Segregation principle, which states that clients should not be forced to depend on interfaces they do not use, and that interfaces should be designed to be cohesive and focused on a single purpose. | | [Inversion Control](docs/architectural-design-principles/inversion-control.md) | The Inversion of Control (IoC) pattern, which is a technique for decoupling the dependencies between modules or components in a system, by inverting the direction of the dependencies. | | [KISS](docs/architectural-design-principles/kiss.md) | Keep It Simple, Stupid (KISS) is a design principle that encourages keeping systems and solutions as simple as possible to avoid unnecessary complexity and increase maintainability. | | [Open Closed Principles](docs/architectural-design-principles/open-closed-principles.md) | The Open-Closed Principle (OCP) is a design principle that promotes the idea of writing code that is open to extension but closed to modification, meaning that new features should be added to a system without changing its existing codebase. | | [Persistence Ignorance](docs/architectural-design-principles/persistence-ignorance.md) | Persistence Ignorance (PI) is a design principle that encourages decoupling business logic from persistence logic to increase flexibility, maintainability, and testability. | | [Single Responsibility](docs/architectural-design-principles/single-responsibility.md) | The Single Responsibility Principle (SRP) is a design principle that advocates for a class or module to have only one reason to change, meaning it should only have one responsibility or job. | | [Strangler Fig Pattern](docs/architectural-design-principles/strangler-fig-pattern.md) | The Strangler Fig Pattern is an approach to software modernization that involves gradually replacing an existing system with a new one, module by module, rather than attempting to migrate it all at once. | | [Solid](docs/architectural-design-principles/solid.md) | SOLID is an acronym for five object-oriented design principles (Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle) that aim to make software systems more maintainable, scalable, and testable. | | [Yagni](docs/architectural-design-principles/yagni.md) | You Aren't Gonna Need It (YAGNI) is a principle that advises against writing code for features that are not yet needed, to avoid adding unnecessary complexity to the codebase and focus on delivering only what is required. | ### Design Patterns | Topic | Description | | :-------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | [Design Patterns](docs/design-patterns/design-patterns.md) | A comprehensive list of design patterns with examples and explanations of how they can be used to solve common software design problems. | | [Adapter Pattern](docs/design-patterns/adapter-pattern.md) | The Adapter Pattern is a structural design pattern that allows objects with incompatible interfaces to work together by providing a wrapper that adapts the interface of one object to match the interface of another. Actually The Adapter acts as a wrapper between two objects. It catches calls for one object and transforms them to format and interface recognizable by the second object. | | [Builder](docs/design-patterns/builder.md) | TODO... | | [Chain of Responsibility](docs/design-patterns/chain-of-responsibility.md) | TODO... | | [Command Message Pattern](docs/design-patterns/command-message-pattern.md) | TODO... | | [Command Pattern](docs/design-patterns/command-pattern.md) | TODO... | | [Decorator Patterns](docs/design-patterns/decorator-pattern.md) | TODO... | | [Factory Patterns](docs/design-patterns/factory-pattern.md) | TODO... | | [Mediator Patterns](docs/design-patterns/mediator-pattern.md) | TODO... | | [Observer Patterns](docs/design-patterns/observer.md) | TODO... | | [Query-Object Patterns](docs/design-patterns/query-object-pattern.md) | TODO... | | [Repository Pattern](docs/design-patterns/repository-pattern.md) | TODO... | | [REPR](docs/design-patterns/repr.md) | TODO... | | [Service Locator](docs/design-patterns/service-locator.md) | TODO... | | [Singleton](docs/design-patterns/singleton.md) | TODO... | | [Specification Pattern](docs/design-patterns/specification-pattern.md) | TODO... | | [State Pattern](docs/design-patterns/state-pattern.md) | TODO... | | [Strategy Patterns](docs/design-patterns/strategy-pattern.md) | TODO... | | [Transaction-Script Patterns](docs/design-patterns/transaction-script-pattern.md) | TODO... | ### Cloud Design Patterns | Topic | Description | | :------------------------------------------------------------------------------------------: | :---------- | | [Cloud Design Patterns](docs/cloud-design-patterns/cloud-design-patterns.md) | TODO... | | [Ambassador Pattern](docs/cloud-design-patterns/ambassador-pattern.md) | TODO... | | [Anti Corruption Layer Pattern](docs/cloud-design-patterns/anti-corruption-layer-pattern.md) | TODO... | | [BFF](docs/cloud-design-patterns/bff.md) | TODO... | | [Bulkhead Pattern](docs/cloud-design-patterns/bulkhead-pattern.md) | TODO... | | [Circuit Breaker](docs/cloud-design-patterns/circuit-breaker.md) | TODO... | | [Exactly One Delivery](docs/cloud-design-patterns/exactly-one-delivery.md) | TODO... | | [Gateway Aggregation](docs/cloud-design-patterns/gateway-aggregation.md) | TODO... | | [Gateway Pattern](docs/cloud-design-patterns/gateway-pattern.md) | TODO... | | [Inbox Patterns](docs/cloud-design-patterns/inbox-pattern.md) | TODO... | | [Outbox Patterns](docs/cloud-design-patterns/outbox-pattern.md) | TODO... | | [Saga Patterns](docs/cloud-design-patterns/saga.md) | TODO... | | [Sidecar Patterns](docs/cloud-design-patterns/sidecar.md) | TODO... | | [Strangler Fig Patterns](docs/cloud-design-patterns/strangler-fig-pattern.md) | TODO... | ### Cloud Best Practices | Topic | Description | | :-----------------------------------------------------------------------: | :---------- | | [Cloud Best Practices](docs/cloud-best-practices/cloud-best-practices.md) | TODO... | ### Cloud Native | Topic | Description | | :----------------------------------: | :---------- | | [Cloud Native](docs/cloud-native.md) | TODO... | ### Platform as a Service | Topic | Description | | :---------------------------------: | :---------- | | [Heroku](docs/paas/heroku.md) | TODO... | | [Netlify](docs/paas/netlify.md) | TODO... | | [OpenShift](docs/paas/openshift.md) | TODO... | | [Rancher](docs/paas/rancher.md) | TODO... | ### Infrastructure as a Service | Topic | Description | | :----------------------------------------------: | :---------- | | [Infrastructure as a Service](docs/iaas/iaas.md) | TODO... | | [Nomad](docs/iaas/nomad.md) | TODO... | | [Pulumi](docs/iaas/pulumi.md) | TODO... | | [Terraform](docs/iaas/terraform.md) | TODO... | ### DevOps | Topic | Description | | :-------------------------------------------------------------------------------------------------------------------: | :---------- | | [Containerd](docs/devops/containerd.md) | TODO... | | [Docker](docs/devops/docker/docker.md) | TODO... | | [Docker - Docker Compose](docs/devops/docker/docker-compose.md) | TODO... | | [Kubernetes](docs/devops/kubernetes/kubernetes.md) | TODO... | | [Kubernetes - Services](docs/devops/kubernetes/services.md) | TODO... | | [Kubernetes - Deployment Strategies](docs/devops/kubernetes/deployment-strategies.md) | TODO... | | [Kubernetes - Deployment Tools - ArgoCd](docs/devops/kubernetes/deployment-tools/argo-cd.md) | TODO... | | [Kubernetes - Deployment Tools - Flux](docs/devops/kubernetes/deployment-tools/flux.md) | TODO... | | [Kubernetes - Deployment Tools - Helm](docs/devops/kubernetes/deployment-tools/helm.md) | TODO... | | [Kubernetes - Deployment Tools - Jenkins](docs/devops/kubernetes/deployment-tools/jenkins.md) | TODO... | | [Kubernetes - Deployment Tools - Kubernetes Operator](docs/devops/kubernetes/deployment-tools/kubernetes-operator.md) | TODO... | | [Kubernetes - Deployment Tools - Kustomize](docs/devops/kubernetes/deployment-tools/kustomize.md) | TODO... | | [Kubernetes - Ingress Controller](docs/devops/kubernetes/ingress-controller/ingress-controller.md) | TODO... | | [Kubernetes - Ingress Controller - Nginx](docs/devops/kubernetes/ingress-controller/nginx-ingress.md) | TODO... | | [Kubernetes - Ingress Controller - Traefik](docs/devops/kubernetes/ingress-controller/traefik-ingress.md) | TODO... | | [Kubernetes - Other Tools - K3s](docs/devops/kubernetes/other-tools/k3s.md) | TODO... | | [Kubernetes - Other Tools - Kind](docs/devops/kubernetes/other-tools/kind.md) | TODO... | | [Kubernetes - Other Tools - Tilt](docs/devops/kubernetes/other-tools/tilt.md) | TODO... | ### Reverse Proxy - Load Balancing | Topic | Description | | :-------------------------------------------------------: | :---------- | | [Load Balancing](docs/reverse-proxy-lb/load-balancing.md) | TODO... | | [Reverse Proxy](docs/reverse-proxy-lb/reverse-proxy.md) | TODO... | | [Envoy](docs/reverse-proxy-lb/envoy.md) | TODO... | | [HAProxy](docs/reverse-proxy-lb/haproxy.md) | TODO... | | [MetalLB](docs/reverse-proxy-lb/metallb.md) | TODO... | | [Nginx](docs/reverse-proxy-lb/nginx.md) | TODO... | | [Traefik](docs/reverse-proxy-lb/traefik.md) | TODO... | | [Yarp](docs/reverse-proxy-lb/yarp.md) | TODO... | ### Service Discovery And Registry | Topic | Description | | :--------------------------------------------------------------: | :---------- | | [Service Discovery](docs/service-discovery/service-discovery.md) | TODO... | | [Consul](docs/service-discovery/consul.md) | TODO... | | [Eureka](docs/service-discovery/eureka.md) | TODO... | ### Service Mesh | Topic | Description | | :-----------------------------------------------: | :---------- | | [Service Mesh](docs/service-mesh/service-mesh.md) | TODO... | | [Istio](docs/service-mesh/istio.md) | TODO... | | [Linkerd](docs/service-mesh/linkerd.md) | TODO... | | [Maesh](docs/service-mesh/maesh.md) | TODO... | ### Object Oriented Design | Topic | Description | | :------------------------------------------------------: | :---------- | | [Object Oriented Design](docs/object-oriented-design.md) | TODO... | ### Systems Design | Topic | Description | | :-------------------------------------------------------: | :---------- | | [Systems Design](docs/systems-design/systems-design.md) | TODO... | | [Consistent Hash](docs/systems-design/consistent-hash.md) | TODO... | ### Scaling | Topic | Description | | :------------------------: | :---------- | | [Scaling](docs/scaling.md) | TODO... | ### Back Pressure | Topic | Description | | :------------------------------------: | :---------- | | [Back Pressure](docs/back-pressure.md) | TODO... | ### Clean Code | Topic | Description | | :------------------------------: | :---------- | | [Clean Code](docs/clean-code.md) | TODO... | ### Abstraction | Topic | Description | | :--------------------------------: | :---------- | | [Abstraction](docs/abstraction.md) | TODO... | ### Design Best Practices | Topic | Description | | :--------------------------------------------------------------------------: | :---------- | | [Design Best Practices](docs/design-best-practices/design-best-practices.md) | TODO... | | [12 Factor](docs/design-best-practices/12-factor.md) | TODO... | | [Strongly Typed Ids](docs/design-best-practices/strongly-typed-ids.md) | TODO... | | [Thin Controllers](docs/design-best-practices/thin-controllers.md) | TODO... | ### Anti Patterns | Topic | Description | | :------------------------------------------------------------: | :---------- | | [Anti Patterns](docs/anti-patterns/anti-patterns.md) | TODO... | | [Big Ball of Mud](docs/anti-patterns/big-ball-of-mud.md) | TODO... | | [Code Smells](docs/anti-patterns/code-smells.md) | TODO... | | [God Object](docs/anti-patterns/god-object.md) | TODO... | | [Leaky Abstractions](docs/anti-patterns/leaky-abstractions.md) | TODO... | | [Partial Object](docs/anti-patterns/partial-object.md) | TODO... | | [Static Cling](docs/anti-patterns/static-cling.md) | TODO... | ### Eventual Consistency | Topic | Description | | :--------------------------------------------------: | :---------- | | [Eventual Consistency](docs/eventual-consistency.md) | TODO... | ### Messaging | Topic | Description | | :----------------------------------------------------------------: | :---------- | | [Messaging](docs/messaging/messaging.md) | TODO... | | [Async APIs Documentation](docs/messaging/async-api-documentation.md) | TODO... | | [Messaging-patterns](docs/messaging/messaging-patterns.md) | TODO... | | [Kafka](docs/messaging/kafka.md) | TODO... | | [Rabbitmq](docs/messaging/rabbitmq.md) | TODO... | | [Nats](docs/messaging/nats.md) | TODO... | | [ZeroMQ](docs/messaging/zeromq.md) | TODO... | | [Change Data Capture (CDC)](docs/messaging/change-data-capture.md) | TODO... | ### Distributed Transactions | Topic | Description | | :----------------------------------------------------------: | :---------- | | [Distributed Transactions](docs/distributed-transactions.md) | TODO... | ### Distributed Locking | Topic | Description | | :------------------------------------------------: | :---------- | | [Distributed Locking](docs/distributed-locking.md) | TODO... | ### Eventual Consistency | Topic | Description | | :--------------------------------------------------: | :---------- | | [Eventual Consistency](docs/eventual-consistency.md) | TODO... | ### RESTful API Design | Topic | Description | | :--------------------------------: | :---------- | | [RESTful API Design](docs/rest.md) | TODO... | ### gRPC | Topic | Description | | :------------------: | :---------- | | [gRPC](docs/grpc.md) | TODO... | ### Caching | Topic | Description | | :------------------------: | :---------- | | [Caching](docs/caching.md) | TODO... | ### Functional Programming | Topic | Description | | :------------------------------------------: | :---------- | | [Functional Programming](docs/functional.md) | TODO... | ### Concurrency | Topic | Description | | :--------------------------------: | :---------- | | [Concurrency](docs/concurrency.md) | TODO... | ### Sharding | Topic | Description | | :--------------------------: | :---------- | | [Sharding](docs/sharding.md) | TODO... | ### Refactoring | Topic | Description | | :--------------------------------: | :---------- | | [Refactoring](docs/refactoring.md) | TODO... | ### Database | Topic | Description | | :--------------------------------------------------------------------------------------------: | :---------- | | [Database - NoSQL - NoSQL](docs/database/nosql/nosql.md) | TODO... | | [Database - NoSQL - MongoDB](docs/database/nosql/mongodb.md) | TODO... | | [Database - NoSQL - RavenDB](docs/database/nosql/ravendb.md) | TODO... | | [Database - NoSQL - Cosmosdb](docs/database/nosql/cosmosdb.md) | TODO... | | [Database - NoSQL - Documentdb](docs/database/nosql/documentdb.md) | TODO... | | [Database - Relational - Relational Database](docs/database/relational/relational-database.md) | TODO... | | [Database - Relational - Postgres](docs/database/relational/postgres.md) | TODO... | | [Database - Relational - SQL](docs/database/relational/sql.md) | TODO... | | [Database - Replication](docs/database/replication.md) | TODO... | | [Database - Sharding](docs/database/sharding.md) | TODO... | ### Relational Database | Topic | Description | | :---: | :---------- | ### Microsoft Azure Cloud | Topic | Description | | :--------------------------------------------------------------------------------------------: | :---------- | | [Microsoft Azure Cloud](docs/azure/azure-cloud.md) | TODO... | | [AKS](docs/azure/aks.md) | TODO... | | [Azure API Management](docs/azure/azure-api-management.md) | TODO... | | [Azure App Service Plan](docs/azure/azure-app-service-plan.md) | TODO... | | [Azure App Service](docs/azure/azure-app-service.md) | TODO... | | [Azure Arc](docs/azure/azure-arc.md) | TODO... | | [Azure Configuration](docs/azure/azure-configuration.md) | TODO... | | [Azure Functions](docs/azure/azure-functions.md) | TODO... | | [Azure Load Balancing](docs/azure/azure-load-balancing.md) | TODO... | | [Azure Logic App](docs/azure/azure-logic-app.md) | TODO... | | [Azure Resource](docs/azure/azure-resource.md) | TODO... | | [Azure Resource Manager](docs/azure/azure-resource-manager.md) | TODO... | | [Azure SQL Server](docs/azure/azure-sql.md) | TODO... | | [Azure Security - Azure Key Vault](docs/azure/azure-security/azure-key-vault.md) | TODO... | | [Azure Security - Azure Active Directory](docs/azure/azure-security/azure-active-directory.md) | TODO... | | [Azure Messaging](docs/azure/messaging/messaging.md) | TODO... | | [Azure Messaging - Azure Service Bus](docs/azure/messaging/azure-service-bus.md) | TODO... | | [Azure Messaging - Azure Event Grid](docs/azure/messaging/azure-event-grid.md) | TODO... | | [Azure Messaging - Azure Event Hub](docs/azure/messaging/azure-event-hub.md) | TODO... | | [Azure Messaging - Azure Queue](docs/azure/messaging/azure-queue.md) | TODO... | | [Azure Messaging - Azure Web Pub Sub](docs/azure/messaging/azure-web-pub-sub.md) | TODO... | | [Azure NoSQL](docs/azure/nosql/azure-nosql.md) | TODO... | | [Azure NoSQL - CosmosDB](docs/azure/nosql/cosmosdb.md) | TODO... | | [Azure Storage](docs/azure/storage/storage.md) | TODO... | | [Azure Storage - Blob Storage](docs/azure/storage/blob.md) | TODO... | | [Azure Storage - File Storage](docs/azure/storage/file.md) | TODO... | | [Azure Storage - Queue Storage](docs/azure/storage/queue.md) | TODO... | | [Azure Storage - Table Storage](docs/azure/storage/table.md) | TODO... | ### Modeling | Topic | Description | | :-----------------------------------------------------------: | :---------- | | [Modeling](docs/modeling/modeling.md) | TODO... | | [Architecture Diagram](docs/modeling/architecture-diagram.md) | TODO... | | [Class Diagram](docs/modeling/class-diagram.md) | TODO... | | [Component Diagram](docs/modeling/component-diagram.md) | TODO... | | [Conceptual Modeling](docs/modeling/conceptual-modeling.md) | TODO... | | [Data Model Notations](docs/modeling/data-model-notations.md) | TODO... | | [Domain Stroytelling](docs/modeling/domain-stroytelling.md) | TODO... | | [ER Diagrams](docs/modeling/er-diagrams.md) | TODO... | | [Event Modeling](docs/modeling/event-modeling.md) | TODO... | | [Event Storming](docs/modeling/event-storming.md) | TODO... | | [Logical Modeling](docs/modeling/logical-modeling.md) | TODO... | ### Open Source | Topic | Description | | :--------------------------------: | :---------- | | [Open Source](docs/open-source.md) | TODO... | ### Code Review | Topic | Description | | :--------------------------------: | :---------- | | [Code Review](docs/code-review.md) | TODO... | ### Micro-Frontend | Topic | Description | | :--------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Micro-Frontend](docs/micro-frontend.md) | Micro-frontends are revolutionizing the development landscape by allowing independent implementation of a business subdomain, all with the same and different technologies. | ### Others | Topic | Description | | :----------------------: | :---------- | | [Others](docs/others.md) | TODO... | ## 🙏 Special Thanks Thanks to the authors of the links for their valuable content, I gather them in one place for finding topics to read easier. ## ⭐ Support If you like, feel free to ⭐ this repository, it helps out :) Thanks a bunch for supporting me! ## 🤝 Contribution Contributions are always welcome! Please take a look at the [contribution guidelines](https://github.com/mehdihadeli/awesome-software-architecture/blob/main/contributing.md) pages first. Thanks to all [contributors](https://github.com/mehdihadeli/awesome-software-architecture/graphs/contributors), you're awesome and this wouldn't be possible without you! The goal is to build a categorized community-driven collection of very well-known resources. ================================================ FILE: ReleaseNotes.csproj ================================================  Exe net9.0 enable enable ================================================ FILE: contributing.md ================================================ # Contribution Guidelines ## New entry format * Use the following format: **(LINK) | (LIBRARY) | (GitHub-UserName/GitHub-RepositoryName) - DESCRIPTION** * The link should be the name of the package or project or article and they must be added to `corresponding md file` in the [docs](./docs) folder. * Keep descriptions concise, clear and simple. * New categories, or improvements to the existing ones are also welcome. * If you add new category you should create a new `md file` for this category in the [docs](./docs) folder. * If you add new category don't forget to add it to [mkdocs.yml](mkdocs.yml) file in root of this project. * Your links will check for ensuring quality. ## Pull requests workflow * **For adding some links in each category create a separate pull request.** If you want to add several links in each category, you should create PR for changing in that category, creating separate pull request for each category make review process easier (each category has a separate md file). * **Meaningful description.** Pull request should have meaningful description what this project do, why do you want to add it to the list and any other info which might be useful. This will help maintainers with the review process. ## Research projects If you are to include a research or academic project, please use the `**[Research]**` tag. Thanks to all [contributors](https://github.com/mehdihadeli/awesome-software-architecture/graphs/contributors), you're awesome and wouldn't be possible without you! ================================================ FILE: docs/README.md ================================================

🎨 Awesome Software Architecture
build-status awesome license

> Curated list of awesome articles and resources to learn and practice software architecture, patterns and principles. this repository will be updated continuously, keep yourself up to date. I created this repository to share a set of links that I found valuable and inspiring and I share them with others to improve our knowledge together ✌️. ## 🙏 Special Thanks Thanks to the authors of the links for their valuable content, I gather them in one place for finding topics to read easier. ## ⭐ Support If you like feel free to ⭐ this repository, It helps out :) Thanks a bunch for supporting me! ## 🤝 Contribution Contributions are always welcome! Please take a look at the [contribution guidelines](https://github.com/mehdihadeli/awesome-software-architecture/blob/main/contributing.md) pages first. Thanks to all [contributors](https://github.com/mehdihadeli/awesome-software-architecture/graphs/contributors), you're awesome and wouldn't be possible without you! The goal is to build a categorized community-driven collection of very well-known resources. ================================================ FILE: docs/abstraction.md ================================================ # Abstraction ## 📕 Articles - [When NOT to write an Abstraction Layer](https://codeopinion.com/when-not-to-write-an-abstraction-layer/) ## 📺 Videos - [What's the Cost of Indirection & Abstractions?](https://www.youtube.com/watch?v=DNjDZ0E6GUs) - [When NOT to write an Abstraction Layer](https://www.youtube.com/watch?v=tqqH_Ib_gDc) - [Avoiding Premature Software Abstractions](https://betterprogramming.pub/avoiding-premature-software-abstractions-8ba2e990930a) ================================================ FILE: docs/actor-model-architecture/actor-model-architecture.md ================================================ # Actor Model Architecture ## 📕Articles - [How virtual actors will help you scale your applications the easy way](https://www.etteplan.com/stories/how-virtual-actors-will-help-you-scale-your-applications-easy-way) - [Comparing .NET virtual actor frameworks](https://www.etteplan.com/stories/comparing-net-virtual-actor-frameworks) - [Benchmark: .NET virtual actor frameworks](https://www.etteplan.com/stories/benchmark-net-virtual-actor-frameworks) - [How to Start Learning Actor-Based Programming](https://petabridge.com/blog/begin-learning-actor-based-design/) ## 📦 Libraries - [dotnet/orleans](https://github.com/dotnet/orleans) - Cloud Native application framework for .NET - [asynkron/protoactor-dotnet](https://github.com/asynkron/protoactor-dotnet) - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin - [asynkron/protoactor-go](https://github.com/asynkron/protoactor-go) - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin - [akkadotnet/akka.net](https://github.com/akkadotnet/akka.net) - Canonical actor model implementation for .NET with local + distributed actors in C# and F#. ## 🚀 Samples - [asynkron/realtimemap-dotnet](https://github.com/asynkron/realtimemap-dotnet) - A showcase for Proto.Actor - an ultra-fast distributed actors solution for Go, C#, and Java/Kotlin. - [asynkron/realtimemap-go](https://github.com/asynkron/realtimemap-go) ================================================ FILE: docs/actor-model-architecture/akka-net.md ================================================ # Akka .NET ## 📘 Resources - [akkadotnet/akka.net](https://github.com/akkadotnet/akka.net) - Port of Akka actors for .NET - [Akka.NET Bootcamp](https://petabridge.com/bootcamp/) - [End to End Akka.NET Distributed Programming with Akka.Cluster, K8s, and Docker](https://petabridge.com/cluster/) ## 📕Articles - [Lesson 1 - Working with Akka.NET and Akka.Cluster](https://petabridge.com/cluster/lesson1) - [Lesson 2 - Docker-izing Akka.NET and Akka.Cluster](https://petabridge.com/cluster/lesson2) - [Lesson 3 - Akka.Cluster Best Practices for Continuous Deployment](https://petabridge.com/cluster/lesson3) - [Lesson 4 - Advanced Akka.Cluster Techniques DistributedPubSub, Sharding, and ClusterClient](https://petabridge.com/cluster/lesson4) - [Lesson 5 - Deploying Akka.Cluster in Kubernetes](https://petabridge.com/cluster/lesson5) - [Lesson 6 - Monitoring Akka.NET with Phobos](https://petabridge.com/cluster/lesson6) - [How to Start Learning Actor-Based Programming](https://petabridge.com/blog/begin-learning-actor-based-design/) ## Videos - [Webinar: Akka.NET Application Management Best Practices](https://www.youtube.com/watch?v=X1Tg4R2JFMQ) - [Easy, Database Agnostic NET Event Sourcing and CQRS with Akka.NET](https://www.youtube.com/watch?v=ysXBz2s5W00) - [How We Built the Fastest MQTT Client in NET - Part 1: Why We Built It](https://www.youtube.com/watch?v=l_CT1sGgvdk) - [Reliable Akka.NET Message Delivery with Akka.Delivery](https://www.youtube.com/watch?v=X2PBsUOSXpk) - [Backpressure Explained](https://www.youtube.com/watch?v=0KYoIvrM9VY) - [Consistent Hash Distributions Explained](https://www.youtube.com/watch?v=byL_Cs0dGO0) - [Message and State Versioning in .NET (Using Akka.NET)](https://www.youtube.com/watch?v=oRll1Mzoyl4) ## 🚀 Samples - [petabridge/akkadotnet-cluster-workshop](https://github.com/petabridge/akkadotnet-cluster-workshop) - Akka.NET + Kubernetes + Akka.Cluster Training Course - [petabridge/akka-bootcamp](https://github.com/petabridge/akka-bootcamp) - Self-paced training course to learn Akka.NET fundamentals from scratch - [petabridge/azure-container-app-akkadotnet](https://github.com/petabridge/azure-container-app-akkadotnet) - [petabridge/akkadotnet-code-samples](https://github.com/petabridge/akkadotnet-code-samples) - Akka.NET professional reference code samples ## Libraries - [petabridge/TurboMqtt](https://github.com/petabridge/TurboMqtt) - The fastest Message Queue Telemetry Transport (MQTT) client for .NET. - [akkadotnet/akkadotnet-templates](https://github.com/akkadotnet/akkadotnet-templates) - Production-ready dotnet new templates for Akka.NET ================================================ FILE: docs/actor-model-architecture/orleans.md ================================================ # Orleans ### 📕Articles - [Developing APIs using Actor model in ASP.NET Core](https://dev.to/samueleresca/developing-apis-using-actor-model-in-aspnet-core-2oh2) - [Microsoft Orleans - Problems & Solutions](https://www.ledjonbehluli.com/posts/orleans_problems_and_solutions/) - [Building Loosely Coupled and Scalable RESTful Services using Orleans](https://www.gokhan-gokalp.com/en/orleans-ile-loosely-coupled-ve-scalable-restful-service-olusturma/) ## 📹 Videos - [On .NET Live - Deep Dive into Microsoft Orleans](https://www.youtube.com/watch?v=R0ODfwU6MzQ) - [Introduction to Microsoft Orleans - CodeWithStu](https://www.youtube.com/watch?v=yM-gpuw1uhM) - [Building real applications with Orleans](https://www.youtube.com/watch?v=8duFuggnj8o) - [An Introduction to Orleans](https://www.youtube.com/watch?v=9OMXw0CslKE) - [Clustering in Orleans](https://www.youtube.com/watch?v=okBWuR5AnBY) - [Reuben Bond - Orleans under the hood (Dotnetos Conference 2021)](https://www.youtube.com/watch?v=kgRag4E6b4c) ## 🚀 Samples - [davidfowl/Orleans.PubSub](https://github.com/davidfowl/Orleans.PubSub) - A pub sub implementation built on top of orleans grains - [JorgeCandeias/Trader](https://github.com/JorgeCandeias/Trader) - Trader is an algorithmic trading framework and host built on Microsoft Orleans. - [IEvangelist/orleans-shopping-cart](https://github.com/IEvangelist/orleans-shopping-cart) - [khalidabuhakmeh/HelloOrleans](https://github.com/khalidabuhakmeh/HelloOrleans) - Playing with ASP.NET Core and Orleans in a Client/Server scenario - [Azure-Samples/Orleans-Cluster-on-Azure-Container-Apps](https://github.com/Azure-Samples/Orleans-Cluster-on-Azure-Container-Apps) - Sample application demonstrating a multiple-silo Orleans cluster running in Azure Container Apps. - [samueleresca/blog-orleans-deepdive](https://github.com/samueleresca/blog-orleans-deepdive) - [pmorelli92/Orleans.Tournament](https://github.com/pmorelli92/Orleans.Tournament) - Orleans sample with clustering, implicit stream handling, authentication, authorization, websockets ## 📦 Libraries - [OrleansContrib/OrleansDashboard](https://github.com/OrleansContrib/OrleansDashboard) - A monitoring dashboard for Microsoft Orleans ================================================ FILE: docs/actor-model-architecture/protoactor.md ================================================ # Protoactor ## 📦 Libraries - [asynkron/protoactor-dotnet](https://github.com/asynkron/protoactor-dotnet) - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin - [asynkron/protoactor-go](https://github.com/asynkron/protoactor-go) - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin ## 🚀 Samples - [asynkron/realtimemap-dotnet](https://github.com/asynkron/realtimemap-dotnet) - A showcase for Proto.Actor - an ultra-fast distributed actors solution for Go, C#, and Java/Kotlin. - [asynkron/realtimemap-go](https://github.com/asynkron/realtimemap-go) ================================================ FILE: docs/ai/a2a.md ================================================ # A2A ## Resources - [Agent2Agent (A2A) Protocol Specification](https://a2a-protocol.org/v0.2.5/specification/) ## Articles - [Building AI Agents with the A2A .NET SDK](https://devblogs.microsoft.com/foundry/building-ai-agents-a2a-dotnet-sdk/) - [Agent Discovery, Naming, and Resolution - the Missing Pieces to A2A](https://blog.christianposta.com/dynamic-agent-discovery-with-a2a-and-ans/) - [Configuring A2A OAuth User Delegation](https://blog.christianposta.com/setting-up-a2a-oauth-user-delegation/) - [Understanding Sessions in Agent to Agent Communication](https://blog.christianposta.com/understanding-sessions-in-agent-to-agent-communication/) - [Mitigate Prompt Injection Attacks With A2AS and Agentgateway](https://blog.christianposta.com/mitigate-prompt-injection-attacks-with-a2as-and-agentgateway/) - [Deep Dive MCP and A2A Attack Vectors for AI Agents](https://blog.christianposta.com/understanding-mcp-and-a2a-attack-vectors-for-ai-agents/) ## Libraries & Tools - [agentgateway/agentgateway](https://github.com/agentgateway/agentgateway) - Next Generation Agentic Proxy for AI Agents and MCP servers ## Samples - [christian-posta/oauth-agent-flows](https://github.com/christian-posta/oauth-agent-flows) - OAuth Agent Token Exchange ================================================ FILE: docs/ai/agent-framework.md ================================================ # Microsoft Agent Framework ## Resources - [Microsoft Agent Framework documentation](https://learn.microsoft.com/en-us/agent-framework/) ## Articles - [Microsoft Agent Framework](https://learn.microsoft.com/en-us/agent-framework/overview/agent-framework-overview) - [Introducing Microsoft Agent Framework (Preview): Making AI Agents Simple for Every Developer](https://devblogs.microsoft.com/dotnet/introducing-microsoft-agent-framework-preview/) - [Introducing Microsoft Agent Framework: The Open-Source Engine for Agentic AI Apps](https://devblogs.microsoft.com/foundry/introducing-microsoft-agent-framework-the-open-source-engine-for-agentic-ai-apps/) - [Supercharging .NET Apps with DevUI and the New Microsoft Agent Framework](https://elbruno.com/2025/11/13/%f0%9f%9a%80-supercharging-net-apps-with-devui-and-the-new-microsoft-agent-framework/) ## Videos - [Agent Framework: Building Blocks for the Next Generation of AI Agents](https://www.youtube.com/watch?v=AAgdMhftj8w) - [.NET AI Community Standup - Getting Started with the Microsoft Agent Framework](https://www.youtube.com/watch?v=KDxi3NG3nfU) - [Microsoft Agent Framework WorkFlows Explained](https://www.youtube.com/watch?v=KQ09sMHeFQY) - [Deep Dive into Microsoft Agent Framework for AutoGen Users](https://www.youtube.com/watch?v=JlzteydCK_Q) ## Libraries - [microsoft/agent-framework](https://github.com/microsoft/agent-framework) - A framework for building, orchestrating and deploying AI agents and multi-agent workflows with support for Python and .NET. ## Samples - [microsoft/agent-framework/dotnet/samples](https://github.com/microsoft/agent-framework/tree/main/dotnet/samples) ================================================ FILE: docs/ai/agent.md ================================================ # Agents ## Resources - [microsoft/ai-agents-for-beginners](https://github.com/microsoft/ai-agents-for-beginners) - 12 Lessons to Get Started Building AI Agents ## Samples - [NirDiamant/GenAI_Agents](https://github.com/NirDiamant/GenAI_Agents) - This repository provides tutorials and implementations for various Generative AI Agent techniques, from basic to advanced. It serves as a comprehensive guide for building intelligent, interactive AI systems. - [NirDiamant/agents-towards-production](https://github.com/NirDiamant/agents-towards-production) - This repository delivers end-to-end, code-first tutorials covering every layer of production-grade GenAI agents, guiding you from spark to scale with proven patterns and reusable blueprints for real-world launches. ## Tools & Libraries - [kagent-dev/kagent](https://github.com/kagent-dev/kagent) - Cloud Native Agentic AI ================================================ FILE: docs/ai/ai.md ================================================ # AI ## Resources - [microsoft/generative-ai-for-beginners](https://github.com/microsoft/generative-ai-for-beginners/) ⭐ - 21 Lessons, Get Started Building with Generative AI - [microsoft/ai-agents-for-beginners](https://github.com/microsoft/ai-agents-for-beginners) ⭐ - 11 Lessons to Get Started Building AI Agents - [microsoft/AI-For-Beginners](https://github.com/microsoft/AI-For-Beginners) - 12 Weeks, 24 Lessons, AI for All! - [Hannibal046/Awesome-LLM](https://github.com/Hannibal046/Awesome-LLM) - Awesome-LLM: a curated list of Large Language Model - [josephmisiti/awesome-machine-learning](https://github.com/josephmisiti/awesome-machine-learning) - A curated list of awesome Machine Learning frameworks, libraries and software. - [dair-ai/ML-YouTube-Courses](https://github.com/dair-ai/ML-YouTube-Courses) - Discover the latest machine learning / AI courses on YouTube. - [louisfb01/start-machine-learning](https://github.com/louisfb01/start-machine-learning) - A complete guide to start and improve in machine learning - [HuangOwen/Awesome-LLM-Compression](https://github.com/HuangOwen/Awesome-LLM-Compression) - Awesome LLM compression research papers and tools. - [louisfb01/start-llms](https://github.com/louisfb01/start-llms) - A complete guide to start and improve your LLM skills - [mlabonne/llm-course](https://github.com/mlabonne/llm-course) ⭐ - Course to get into Large Language Models (LLMs) with roadmaps and Colab notebooks. - [geffzhang/awesome-semantickernel](https://github.com/geffzhang/awesome-semantickernel) - Awesome list of tools and projects with the awesome semantic kernel framework - [jmatthiesen/dotnet-ai-resources](https://github.com/jmatthiesen/dotnet-ai-resources) - A collection of resources available to .NET developers working with AI - [LLM University](https://cohere.com/llmu) - [e2b-dev/awesome-ai-agents](https://github.com/e2b-dev/awesome-ai-agents) - A list of AI autonomous agents - [Hugging Face Learn](https://huggingface.co/learn) ⭐ - [aishwaryanr/awesome-generative-ai-guide](https://github.com/aishwaryanr/awesome-generative-ai-guide) - A one stop repository for generative AI research updates, interview resources, notebooks and much more! ## Articles - [Reviewing GitHub Copilot by Building a Deck of Cards](https://programmingpercy.tech/blog/reviewing-github-copilot-by-building-deck-of-cards/) - [ChatGPT Might Make Developers Unemployed In A Few Years](https://programmingpercy.tech/blog/chatgpt-might-make-developers-unemployed-in-years/) - [GPT4All: Running an Open-source ChatGPT Clone on Your Laptop](https://betterprogramming.pub/gpt4all-running-an-open-source-chatgpt-clone-on-your-laptop-71ebe8600c71) - [How to Install AutoGPT in Minutes](https://geekflare.com/how-to-install-autogpt/) - [What Are Transformer Models and How Do They Work?](https://txt.cohere.com/what-are-transformer-models/) - [Running Large Language Models locally – Your own ChatGPT-like AI in C#](https://blog.maartenballiauw.be/post/2023/06/15/running-large-language-models-locally-your-own-chatgpt-like-ai-in-csharp.html) - [Introducing Microsoft.Extensions.AI Preview – Unified AI Building Blocks for .NET](https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-ai-preview/) - [GitHub Models and .NET: Building Generative AI apps for engineers](https://devblogs.microsoft.com/dotnet/using-github-models-and-dotnet-to-build-generative-ai-apps/) ## 📺 Videos - [ChatGPT Might Make Developers Unemployed In A Few Years](https://www.youtube.com/watch?v=C6tRcvY5xZg) - [Auto-GPT Tutorial - Create Your Personal AI Assistant](https://www.youtube.com/watch?v=jn8n212l3PQ) - [Create a Large Language Model from Scratch with Python – Tutorial](https://www.youtube.com/watch?v=UU1WVnMk4E8) - [Intro to Large Language Models](https://www.youtube.com/watch?v=zjkBMFhNj_g) ⭐ - [.NET AI Community Standup - Phi-3 & C#](https://www.youtube.com/watch?v=fbojvzHGtkM) - [Getting Started With Hugging Face in 15 Minutes | Transformers, Pipeline, Tokenizer, Models](https://www.youtube.com/watch?v=QEaBAZQCtwE) - [How Microsoft Developers Use AI in Real-World Coding](https://youtu.be/gieL0bxyTUU) ## Courses - [Huggingface Courses](https://huggingface.co/learn) - [ChatGPT Prompt Engineering for Developers](https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/) ## Libraries - [nomic-ai/gpt4all](https://github.com/nomic-ai/gpt4all) - gpt4all: a chatbot trained on a massive collection of clean assistant data including code, stories and dialogue - [Torantulino/Auto-GPT](https://github.com/Torantulino/Auto-GPT) - An experimental open-source attempt to make GPT-4 fully autonomous. - [microsoft/DeepSpeed](https://github.com/microsoft/DeepSpeed) - DeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective. - [lm-sys/FastChat](https://github.com/lm-sys/FastChat) - The release repo for "Vicuna: An Open Chatbot Impressing GPT-4" - [karpathy/nanoGPT](https://github.com/karpathy/nanoGPT) - The simplest, fastest repository for training/finetuning medium-sized GPTs. - [Significant-Gravitas/Auto-GPT-Plugins](https://github.com/Significant-Gravitas/Auto-GPT-Plugins) - Plugins for Auto-GPT - [LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) - OpenAssistant is a chat-based assistant that understands tasks, can interact with third-party systems, and retrieve information dynamically to do so. - [go-skynet/LocalAI](https://github.com/go-skynet/LocalAI) - Self-hosted, community-driven, local OpenAI-compatible API. Drop-in replacement for OpenAI running LLMs on consumer-grade hardware. No GPU required - [SciSharp/LLamaSharp](https://github.com/SciSharp/LLamaSharp) - C#/.NET binding of llama.cpp, including LLaMa/GPT model inference and quantization, ASP.NET core integration and UI. - [ggerganov/llama.cpp](https://github.com/ggerganov/llama.cpp) - Port of Facebook's LLaMA model in C/C++ - [meta-llama/llama](https://github.com/meta-llama/llama) - Inference code for Llama models - [meta-llama/llama3](https://github.com/meta-llama/llama3) - The official Meta Llama 3 GitHub site - [SevaSk/ecoute](https://github.com/SevaSk/ecoute) - Ecoute is a live transcription tool that provides real-time transcripts for both the user's microphone input (You) and the user's speakers output (Speaker) in a textbox. It also generates a suggested response using OpenAI's GPT-3.5 for the user to say based on the live transcription of the conversation. - [AntonOsika/gpt-engineer](https://github.com/AntonOsika/gpt-engineer) - Specify what you want it to build, the AI asks for clarification, and then builds it. - [facebookresearch/llama](https://github.com/facebookresearch/llama) - Inference code for LLaMA models - [camenduru/text-generation-webui-colab](https://github.com/camenduru/text-generation-webui-colab) - A colab gradio web UI for running Large Language Models - [microsoft/semantic-kernel](https://github.com/microsoft/semantic-kernel) - Integrate cutting-edge LLM technology quickly and easily into your apps - [huggingface/transformers](https://github.com/huggingface/transformers) ⭐ - Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX. - [huggingface/diffusers](https://github.com/huggingface/diffusers) ⭐ - Diffusers: State-of-the-art diffusion models for image and audio generation in PyTorch - [imartinez/privateGPT](https://github.com/imartinez/privateGPT) ⭐ Interact privately with your documents using the power of GPT, 100% privately, no data leaks - [UKPLab/sentence-transformers](https://github.com/UKPLab/sentence-transformers) - Multilingual Sentence & Image Embeddings with BERT - [chroma-core/chroma](https://github.com/chroma-core/chroma) - the AI-native open-source embedding database - [microsoft/azurechatgpt](https://github.com/microsoft/azurechatgpt) - Azure ChatGPT: Private & secure ChatGPT for internal enterprise use - [StanGirard/quivr](https://github.com/StanGirard/quivr) - Your Second Brain supercharged by Generative AI Dump all your files and chat with your personal assistant on your files & more using GPT 3.5/4, Private, Anthropic, VertexAI, LLMs... - [oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui) - A Gradio web UI for Large Language Models. Supports transformers, GPTQ, llama.cpp (ggml/gguf), Llama models - [jmorganca/ollama](https://github.com/jmorganca/ollama) ⭐ - Get up and running with Llama 2 and other large language models locally - [xtekky/gpt4free](https://github.com/xtekky/gpt4free) - The official gpt4free repository | various collection of powerful language models - [RayVentura/ShortGPT](https://github.com/RayVentura/ShortGPT) - ShortGPT - Experimental AI framework for automated short/video content creation. - [LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) - OpenAssistant is a chat-based assistant that understands tasks, can interact with third-party systems, and retrieve information dynamically to do so. - [tmc/langchaingo](https://github.com/tmc/langchaingo) - LangChain for Go, the easiest way to write LLM-based programs in Go - [abi/screenshot-to-code](https://github.com/abi/screenshot-to-code) - Drop in a screenshot and convert it to clean HTML/Tailwind/JS code - [janhq/jan](https://github.com/janhq/jan) - Jan is an open source alternative to ChatGPT that runs 100% offline on your computer - [langchain-ai/langchain](https://github.com/langchain-ai/langchain) ⭐ - Build context-aware reasoning applications - [meta-llama/llama-models](https://github.com/meta-llama/llama-models) - Utilities intended for use with Llama models. - [black-forest-labs/flux](https://github.com/black-forest-labs/flux) - Official inference repo for FLUX.1 models - [User-friendly WebUI for LLMs (Formerly Ollama WebUI)](https://github.com/open-webui/open-webui) - User-friendly WebUI for LLMs (Formerly Ollama WebUI) - [microsoft/autogen](https://github.com/microsoft/autogen) - A programming framework for agentic AI. - [microsoft/JARVIS](https://github.com/microsoft/JARVIS) - JARVIS, a system to connect LLMs with ML community. Paper: - [Kwai-Kolors/Kolors](https://github.com/Kwai-Kolors/Kolors) - Kolors: Effective Training of Diffusion Model for Photorealistic Text-to-Image Synthesis - [microsoft/kernel-memory](https://github.com/microsoft/kernel-memory) - RAG architecture: index and query any data using LLM and natural language, track sources, show citations, asynchronous memory patterns - [unslothai/unsloth](https://github.com/unslothai/unsloth) - Finetune Llama 3.1, Mistral, Phi & Gemma LLMs 2-5x faster with 80% less memory - [meta-llama/codellama](https://github.com/meta-llama/codellama) - Inference code for CodeLlama models DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence - [deepseek-ai/DeepSeek-Coder-V2](https://github.com/deepseek-ai/DeepSeek-Coder-V2) - DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence - [UKPLab/sentence-transformers](https://github.com/UKPLab/sentence-transformers) - State-of-the-Art Text Embeddings - [SciSharp/TensorFlow.NET](https://github.com/SciSharp/TensorFlow.NET) - .NET Standard bindings for Google's TensorFlow for developing, training and deploying Machine Learning models in C# and F#. - [dotnet/smartcomponents](https://github.com/dotnet/smartcomponents) - Sample intelligent app features provided as reusable .NET components - [yamadashy/repopack](https://github.com/yamadashy/repopack) - Repopack is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, and Gemini. - [BerriAI/litellm](https://github.com/BerriAI/litellm) - Python SDK, Proxy Server (LLM Gateway) to call 100+ LLM APIs in OpenAI format - [Bedrock, Azure, OpenAI, VertexAI, Cohere, Anthropic, Sagemaker, HuggingFace, Replicate, Groq] - [microsoft/BitNet](https://github.com/microsoft/BitNet) - Official inference framework for 1-bit LLMs - [microsoft/markitdown](https://github.com/microsoft/markitdown) - Python tool for converting files and office documents to Markdown. ## Samples - [Azure-Samples/openai-dotnet-samples](https://github.com/Azure-Samples/openai-dotnet-samples) - [dotnet/ai-samples](https://github.com/dotnet/ai-samples) - [vicperdana/AspireShopWithSemanticKernel](https://github.com/vicperdana/AspireShopWithSemanticKernel) - Power up your Shopping Cart Application with AI powered by .NET Aspire and Semantic Kernel - [mehmetozkaya/eshop-distributed](https://github.com/mehmetozkaya/eshop-distributed) - Develop AI-Powered Distributed Architectures using .NET Aspire and GenAI to develop EShop Catalog and Basket microservices integrate with Backing services including PostgreSQL, Redis, RabbitMQ, Keycloak, Ollama and Semantic Kernel to Create Intelligent E-Shop Solutions. - [Azure-Samples/eShopLite](https://github.com/Azure-Samples/eShopLite) - eShopLite is a set of reference .NET applications implementing an eCommerce site with features like Semantic Search, MCP, Reasoning models and more. - [microsoft/semantic-kernel/dotnet/samples](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples) - Semantic Kernel samples - [github/awesome-copilot](https://github.com/github/awesome-copilot) - Community-contributed instructions, prompts, and configurations to help you make the most of GitHub Copilot. ## Books - [Building LLMs for Production: Enhancing LLM Abilities and Reliability with Prompting, Fine-Tuning, and RAG](https://www.amazon.com/Building-LLMs-Production-Reliability-Fine-Tuning/dp/B0D4FFPFW8) - [Super Study Guide: Transformers & Large Language Models](https://www.amazon.com/dp/B0DC4NYLTN/) - [Hands-On Large Language Models](https://www.oreilly.com/library/view/hands-on-large-language/9781098150952/) - [LLM Engineer's Handbook: Master the art of engineering large language models from concept to production](https://www.amazon.com/LLM-Engineers-Handbook-engineering-production/dp/1836200072/) ================================================ FILE: docs/ai/code-assistants.md ================================================ # Code Assistants ## Articles - [Coding for the Future Agentic World - The promise and reality of autonomous coding agents in 2025](https://addyo.substack.com/p/coding-for-the-future-agentic-world) - [How I use Claude Code (+ my best tips)](https://www.builder.io/blog/claude-code) - [How the .NET MAUI Team uses GitHub Copilot for Productivity](https://devblogs.microsoft.com/dotnet/maui-team-copilot-tips/) - [Reverse Engineering your Software Architecture with Claude Code to Help Claude Code](https://medium.com/nick-tune-tech-strategy-blog/reverse-engineering-your-software-architecture-with-claude-code-to-help-claude-code-1746a7b941bc) ## Videos - [How to use Claude Code for beginners](https://www.youtube.com/watch?v=U_vwfQBhVSY) - [How I use Claude Code (+ my best tips)](https://www.youtube.com/watch?v=n7iT5r0Sl_Y) - [I was using Claude Code wrong... The Ultimate Workflow](https://www.youtube.com/watch?v=UZb0if-7wGE) - [How Microsoft Developers Use AI in Real-World Coding](https://youtu.be/gieL0bxyTUU) ## Tools - [anthropics/claude-code](https://github.com/anthropics/claude-code) - Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands. - [cline/cline](https://github.com/cline/cline) - Autonomous coding agent right in your IDE, capable of creating/editing files, executing commands, using the browser, and more with your permission every step of the way. - [zed-industries/zed](https://github.com/zed-industries/zed) - Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. - [plandex-ai/plandex](https://github.com/plandex-ai/plandex) - AI driven development in your terminal. Designed for large, real-world tasks. - [sourcegraph/cody](https://github.com/sourcegraph/cody) - Type less, code more: Cody is an AI code assistant that uses advanced search and codebase context to help you write and fix code. - [Doriandarko/o1-engineer](https://github.com/Doriandarko/o1-engineer) - o1-engineer is a command-line tool designed to assist developers in managing and interacting with their projects efficiently. - [Doriandarko/claude-engineer](https://github.com/Doriandarko/claude-engineer) - Claude Engineer is an interactive command-line interface (CLI) that leverages the power of Anthropic's Claude-3.5-Sonnet model to assist with software development tasks. - [TabbyML/tabby](https://github.com/TabbyML/tabby) - Self-hosted AI coding assistant - [stitionai/devika](https://github.com/stitionai/devika) - Devika is an Agentic AI Software Engineer that can understand high-level human instructions, break them down into steps, research relevant information, and write code to achieve the given objective. - [paul-gauthier/aider](https://github.com/paul-gauthier/aider) - aider is AI pair programming in your terminal - [continuedev/continue](https://github.com/continuedev/continue) - Continue is the leading open-source AI code assistant. You can connect any models and any context to build custom autocomplete and chat experiences inside VS Code and JetBrains - [carlrobertoh/CodeGPT](https://github.com/carlrobertoh/CodeGPT) - The leading open-source AI copilot for JetBrains. Connect to any model in any environment, and customize your coding experience in any way you like. - [All-Hands-AI/OpenHands](https://github.com/All-Hands-AI/OpenHands) - OpenHands: Code Less, Make More - [anthropics/claude-plugins-official](https://github.com/anthropics/claude-plugins-official) - Anthropic-managed directory of high quality Claude Code Plugins. ================================================ FILE: docs/ai/embedding-vector.md ================================================ # Embedding & Vector ## Articles - [Introducing text and code embeddings](https://openai.com/index/introducing-text-and-code-embeddings/) - [Embedding models](https://ollama.com/blog/embedding-models) - [Get Started with Milvus Vector DB in .NET](https://devblogs.microsoft.com/dotnet/get-started-milvus-vector-db-dotnet/) - [Introducing the ML.NET Text Classification API](https://devblogs.microsoft.com/dotnet/introducing-the-ml-dotnet-text-classification-api-preview/) - [Introduction to Sentence Transformers](https://www.marqo.ai/course/introduction-to-sentence-transformers) - [Automate vector search in Postgres with any Hugging Face transformer](https://tembo.io/blog/sentence-transformers) - [How to use Chroma to store and query vector embeddings](https://stephencollins.tech/posts/how-to-use-chroma-to-store-and-query-vector-embeddings) - [How to use Milvus to Store and Query Vector Embeddings](https://stephencollins.tech/posts/how-to-use-milvus-to-store-and-query-vector-embeddings) - [Introduction to Vector Search and Embeddings](https://stephencollins.tech/posts/introduction-to-vector-search-and-embeddings) - [Code Search with Vector Embeddings: A Transformer's Approach](https://stephencollins.tech/posts/code-search-with-vector-embeddings) ## Videos - [Vector Database Explained | What is Vector Database?](https://www.youtube.com/watch?v=72XgD322wZ8) - [OpenAI Embeddings and Vector Databases Crash Course](https://www.youtube.com/watch?v=ySus5ZS0b94) ## Libraries - [neuml/txtai](https://github.com/neuml/txtai) - All-in-one open-source embeddings database for semantic search, LLM orchestration and language model workflows - [chroma-core/chroma](https://github.com/chroma-core/chroma) - the AI-native open-source embedding database - [milvus-io/milvus](https://github.com/milvus-io/milvus) - A cloud-native vector database, storage for next generation AI applications - [UKPLab/sentence-transformers](https://github.com/UKPLab/sentence-transformers/) - State-of-the-Art Text Embeddings - [dotnet/smartcomponents](https://github.com/dotnet/smartcomponents) - Sample intelligent app features provided as reusable .NET components ================================================ FILE: docs/ai/langchain.md ================================================ # LangChain ## Resources - [LangChain Academy](https://academy.langchain.com/collections) ## Articles - [Build a Retrieval Augmented Generation (RAG) App](https://js.langchain.com/v0.2/docs/tutorials/rag/) ## Videos - [LangChain Crash Course For Beginners | LangChain Tutorial](https://www.youtube.com/watch?v=nAmC7SoVLd8) - [LangChain Explained In 15 Minutes - A MUST Learn For Python Programmers](https://www.youtube.com/watch?v=mrjq3lFz23s) - [The LangChain Cookbook - Beginner Guide To 7 Essential Concepts](https://www.youtube.com/watch?v=2xxziIWmaSA) - [RAG + Langchain Python Project: Easy AI/Chat For Your Docs](https://www.youtube.com/watch?v=tcqEUSNCn8I) - [Building Production-Ready RAG Applications: Jerry Liu](https://www.youtube.com/watch?v=TRjq7t2Ms5I) - [LangChain Master Class For Beginners 2024 [+20 Examples, LangChain V0.2]](https://www.youtube.com/watch?v=yF9kGESAi3M) - [Python AI Agent Tutorial - Build a Coding Assistant w/ RAG & LangChain](https://www.youtube.com/watch?v=uN7X819DUlQ) ================================================ FILE: docs/ai/llms.md ================================================ # LLMs ## Videos - [How I use LLMs - Andrej Karpathy](https://www.youtube.com/watch?v=EWvNQjAaOHw) - [Deep Dive into LLMs like ChatGPT - Andrej Karpathy](https://www.youtube.com/watch?v=7xTGNNLPyMI) - [Let's build GPT: from scratch, in code, spelled out - Andrej Karpathy](https://www.youtube.com/watch?v=kCc8FmEb1nY) - [Let's build the GPT Tokenizer - Andrej Karpathy](https://www.youtube.com/watch?v=zduSFxRajkE) ================================================ FILE: docs/ai/mcp.md ================================================ # Model Context Protocol (MCP) ## Resources - [ModelContextProtocol.Io](https://modelcontextprotocol.io/introduction) - [microsoft/mcp/Resources](https://github.com/microsoft/mcp/tree/main/Resources) - MCP Resources - [microsoft/mcp-for-beginners](https://github.com/microsoft/mcp-for-beginners) - This open-source curriculum is designed to teach the concepts and fundamentals of the Model Context Protocol (MCP), with practical examples in .NET, Java, TypeScript, JavaScript and Python. ## Articles - [Connect Once, Integrate Anywhere with MCP](https://devblogs.microsoft.com/blog/connect-once-integrate-anywhere-with-mcps) - [Introducing the Awesome GitHub Copilot Customizations repo](https://devblogs.microsoft.com/blog/introducing-awesome-github-copilot-customizations-repo) - [Integrating Model Context Protocol Tools with Semantic Kernel: A Step-by-Step Guide](https://devblogs.microsoft.com/semantic-kernel/integrating-model-context-protocol-tools-with-semantic-kernel-a-step-by-step-guide/) - [10 Microsoft MCP Servers to Accelerate Your Development Workflow](https://devblogs.microsoft.com/blog/10-microsoft-mcp-servers-to-accelerate-your-development-workflow) - [Build a Model Context Protocol (MCP) server in C#](https://devblogs.microsoft.com/dotnet/build-a-model-context-protocol-mcp-server-in-csharp/) - [Simplifying Model Context Protocol (MCP) Server Development with Aspire](https://nikiforovall.blog/dotnet/2025/04/04/mcp-template-and-aspire.html) - [MCP Authorization With Dynamic Client Registration](https://blog.christianposta.com/understanding-mcp-authorization-with-dynamic-client-registration/) - [Understanding MCP Authorization, Step by Step, Part One](https://blog.christianposta.com/understanding-mcp-authorization-step-by-step/) - [Understanding MCP Authorization, Step by Step, Part Two](https://blog.christianposta.com/understanding-mcp-authorization-step-by-step-part-two/) - [Understanding MCP Authorization, Step by Step, Part Three](https://blog.christianposta.com/understanding-mcp-authorization-step-by-step-part-three/) - [Building an MCP Gateway with Apigee API Gateway](https://blog.christianposta.com/building-an-mcp-gateway-on-top-of-apigee/) - [Deep Dive MCP and A2A Attack Vectors for AI Agents](https://blog.christianposta.com/understanding-mcp-and-a2a-attack-vectors-for-ai-agents/) ## Servers - [modelcontextprotocol/servers](https://github.com/modelcontextprotocol/servers) - Model Context Protocol Servers - [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) - A collection of MCP servers. - [upstash/context7](https://github.com/upstash/context7) - Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors ## Libraries & Tools - [agentgateway/agentgateway](https://github.com/agentgateway/agentgateway) - Next Generation Agentic Proxy for AI Agents and MCP servers - [microsoft/mcp-gateway](https://github.com/microsoft/mcp-gateway) - MCP Gateway is a reverse proxy and management layer for MCP servers, enabling scalable, session-aware stateful routing and lifecycle management of MCP servers in Kubernetes environments. ## Samples - [microsoft/mcp-dotnet-samples](https://github.com/microsoft/mcp-dotnet-samples) - A comprehensive set of samples of creating and using MCP servers and clients with .NET - [Azure-Samples/azure-ai-travel-agents](https://github.com/Azure-Samples/azure-ai-travel-agents) - The AI Travel Agents is a robust enterprise application (hosted on ACA) that leverages MCP and multiple LamaIndex AI agents to enhance travel agency operations. - [microsoft/azure-devops-mcp](https://github.com/microsoft/azure-devops-mcp) - The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents. - [microsoft/lets-learn-mcp-csharp](https://github.com/microsoft/lets-learn-mcp-csharp) - [skills/integrate-mcp-with-copilot](https://github.com/skills/integrate-mcp-with-copilot) - Learn how to use MCP Servers with GitHub Copilot - [christian-posta/mcp-auth-step-by-step](https://github.com/christian-posta/mcp-auth-step-by-step) - Step by step walkthrough of an MCP Authorization implementation ================================================ FILE: docs/ai/ml.net.md ================================================ # ML.Net ## Articles - [What's new in ML.NET](https://learn.microsoft.com/en-us/dotnet/machine-learning/whats-new/overview) - [Using Huggingface Transformers with ML.NET](https://rubikscode.net/2021/10/25/using-huggingface-transformers-with-ml-net/) - [BERT Tokenizers NuGet Package for C#](https://rubikscode.net/2022/09/13/bert-tokenizers-for-ml-net/) ## Libraries - [dotnet/machinelearning](https://github.com/dotnet/machinelearning) - ML.NET is an open source and cross-platform machine learning framework for .NET. ================================================ FILE: docs/ai/models/hugging-face.md ================================================ # Hugging Face ## Articles - [Chat Templates](https://huggingface.co/blog/chat-templates) ## Videos - [Getting Started With Hugging Face in 15 Minutes | Transformers, Pipeline, Tokenizer, Models](https://www.youtube.com/watch?v=QEaBAZQCtwE) - [What is Hugging Face - Crash Course (No Coding) | ML Products for Beginners](https://www.youtube.com/watch?v=x8gdOPO35HA) ## Libraries - [huggingface/transformers](https://github.com/huggingface/transformers) - Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX. - [huggingface/transformers.js](https://github.com/huggingface/transformers.js) - State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! ================================================ FILE: docs/ai/models/models.md ================================================ # Models ## Articles - [Qwen2.5: A Party of Foundation Models!](https://qwenlm.github.io/blog/qwen2.5/) ## Libraries - [deepseek-ai/DeepSeek-V2](https://github.com/deepseek-ai/DeepSeek-V2) - DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model - [QwenLM/Qwen2.5-Coder](https://github.com/QwenLM/Qwen2.5-Coder) - Qwen2.5-Coder is the code version of Qwen2.5, the large language model series developed by Qwen team, Alibaba Cloud. - [QwenLM/Qwen2.5](https://github.com/QwenLM/Qwen2.5) - Qwen2.5 is the large language model series developed by Qwen team, Alibaba Cloud. - [deepseek-ai/DeepSeek-R1](https://github.com/deepseek-ai/DeepSeek-R1) - [deepseek-ai/DeepSeek-V3](https://github.com/deepseek-ai/DeepSeek-V3) - [deepseek-ai/Janus](https://github.com/deepseek-ai/Janus) - Janus-Series: Unified Multimodal Understanding and Generation Models ================================================ FILE: docs/ai/models/ollama.md ================================================ # Ollama ## Resources - [Ollama Documentation](https://github.com/ollama/ollama/tree/main/docs) ## Articles - [OpenAI compatibility](https://ollama.com/blog/openai-compatibility) - [Ollama OpenAI compatibility](https://github.com/ollama/ollama/blob/main/docs/openai.md) - [Importing a model in Ollama](https://github.com/ollama/ollama/blob/main/docs/import.md) - [Tool support](https://ollama.com/blog/tool-support) - [Embedding models](https://ollama.com/blog/embedding-models) - [An entirely open-source AI code assistant inside your editor](https://ollama.com/blog/continue-code-assistant) - [Use Ollama with any GGUF Model on Hugging Face Hub](https://huggingface.co/docs/hub/en/ollama) - [Thinking in ollama](https://ollama.com/blog/thinking) ## Videos - [Importing Open Source Models to Ollama](https://www.youtube.com/watch?v=fnvZJU5Fj3Q) - [Adding Custom Models to Ollama](https://www.youtube.com/watch?v=0ou51l-MLCo) - [Ollama adds OpenAI API support](https://www.youtube.com/watch?v=Zgb2TjZ5zTk) - [Finally Ollama has an OpenAI compatible API](https://www.youtube.com/watch?v=38jlvmBdBrU) - [LLAMA-3.1 🦙: EASIET WAY To FINE-TUNE ON YOUR DATA](https://www.youtube.com/watch?v=rpAtVIZB72U) - [Gen AI Project Using Llama3.1 | End to End Gen AI Project](https://www.youtube.com/watch?v=CO4E_9V6li0) ## Library - [ollama/ollama](https://github.com/ollama/ollama) - Get up and running with Llama 3.2, Mistral, Gemma 2, and other large language models. - [meta-llama/codellama](https://github.com/meta-llama/codellama) - Inference code for CodeLlama models ================================================ FILE: docs/ai/models/openai.md ================================================ # OpenAI ## Articles - [Announcing the stable release of the official OpenAI library for .NET](https://devblogs.microsoft.com/dotnet/announcing-the-stable-release-of-the-official-open-ai-library-for-dotnet/) - [Introducing GPTs](https://openai.com/blog/introducing-gpts) ## Libraries - [openai/gpt-oss](https://github.com/openai/gpt-oss) - gpt-oss-120b and gpt-oss-20b are two open-weight language models by OpenAI ================================================ FILE: docs/ai/models/phi.md ================================================ # Phi ## Articles - [Run Phi-3 SLM on your machine with C# Semantic Kernel and Ollama](https://laurentkempe.com/2024/05/01/run-phi-3-slm-on-your-machine-with-csharp-semantic-kernel-and-ollama/) - [Using Phi-3 & C# with ONNX for text and vision samples](https://devblogs.microsoft.com/dotnet/using-phi3-csharp-with-onnx-for-text-and-vision-samples-md/) - [Introducing Phi-4: Microsoft’s Newest Small Language Model Specializing in Complex Reasoning](https://techcommunity.microsoft.com/blog/aiplatformblog/introducing-phi-4-microsoft%E2%80%99s-newest-small-language-model-specializing-in-comple/4357090) ## Books - [microsoft/Phi-3CookBook](https://github.com/microsoft/Phi-3CookBook) - This is a Phi-3 book for getting started with Phi-3. ================================================ FILE: docs/ai/prompt-engineering.md ================================================ # Prompt Engineering ## Resources - [dair-ai/Prompt-Engineering-Guide](https://github.com/dair-ai/Prompt-Engineering-Guide) - Guides, papers, lecture, notebooks and resources for prompt engineering - [NirDiamant/Prompt_Engineering](https://github.com/NirDiamant/Prompt_Engineering) - This repository offers a comprehensive collection of tutorials and implementations for Prompt Engineering techniques, ranging from fundamental concepts to advanced strategies. ## Articles - [The Prompt Engineering Playbook for Programmers](https://addyo.substack.com/p/the-prompt-engineering-playbook-for) ================================================ FILE: docs/ai/rag.md ================================================ # RAG ## Articles - [Build a Retrieval Augmented Generation (RAG) App](https://js.langchain.com/v0.2/docs/tutorials/rag/) - [Building a Local RAG System for Privacy Preservation with Ollama and Weaviate](https://weaviate.io/blog/local-rag-with-ollama-and-weaviate) - [Typical RAG Implementation Using Semantic Kernel, Kernel Memory, and Aspire in .NET](https://nikiforovall.github.io/dotnet/ai/2024/09/04/typical-rag-dotnet.html) - [Using Phi-3 & C# with ONNX for text and vision samples](https://devblogs.microsoft.com/dotnet/using-phi3-csharp-with-onnx-for-text-and-vision-samples-md/) - [Introducing Phi-3: Redefining what’s possible with SLMs](https://azure.microsoft.com/en-us/blog/introducing-phi-3-redefining-whats-possible-with-slms/) - [Optimizing SLM with ONNX Runtime: Phi-3 on CPU with Sidecars for App Service](https://azure.github.io/AppService/2024/08/19/Phi-3-ONNX.html) - [Building Smarter Apps: Integrating Phi-3 SLM with Linux App Service](https://azure.github.io/AppService/2024/08/05/Using-SLM-with-Sidecar.html) - [Building an Advanced RAG System With Self-Querying Retrieval](https://www.mongodb.com/developer/products/atlas/advanced-rag-self-querying-retrieval/) - [Demystifying Retrieval Augmented Generation with .NET](https://devblogs.microsoft.com/dotnet/demystifying-retrieval-augmented-generation-with-dotnet/) - [Building Intelligent Applications with Local RAG in .NET and Phi-3: A Hands-On Guide](https://techcommunity.microsoft.com/t5/educator-developer-blog/building-intelligent-applications-with-local-rag-in-net-and-phi/ba-p/4175721) - [Bring your AI Copilots to the edge with Phi-3 and Semantic Kernel ](https://arafattehsin.com/ai-copilot-offline-phi3-semantic-kernel/) ## Videos - [.NET AI Community Standup - Phi-3 & C#: Bringing AI to your .NET Apps](https://www.youtube.com/watch?v=fbojvzHGtkM) ## Libraries - [microsoft/kernel-memory](https://github.com/microsoft/kernel-memory) - RAG architecture: index and query any data using LLM and natural language, track sources, show citations, asynchronous memory patterns ## Samples - [NikiforovAll/notebook-agent](https://github.com/NikiforovAll/notebook-agent) - Demonstrates how to use Semantic Kernel and Kernel Memory in a polyglot notebook environment. - [luisquintanilla/RAGDotnetAIFundamentals](https://github.com/luisquintanilla/RAGDotnetAIFundamentals) - This sample shows how to apply vanilla / simple RAG pattern using .NET fundamentals in the AI ecosystem ## Books - [Building LLMs for Production: Enhancing LLM Abilities and Reliability with Prompting, Fine-Tuning, and RAG](https://www.amazon.com/Building-LLMs-Production-Reliability-Fine-Tuning/dp/B0D4FFPFW8) ================================================ FILE: docs/ai/semantic-kernel.md ================================================ # Semantic Kernel & .NET AI ## Resources - [Semantic Kernel documentation](https://learn.microsoft.com/en-us/semantic-kernel/) - [Semantic Kernel C# Notebooks](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/notebooks) - [geffzhang/awesome-semantickernel](https://github.com/geffzhang/awesome-semantickernel) - Awesome list of tools and projects with the awesome semantic kernel framework ## Articles - [What is Semantic Kernel?](https://learn.microsoft.com/en-us/semantic-kernel/overview/) - [Getting started with Semantic Kernel](https://learn.microsoft.com/en-us/semantic-kernel/get-started/quick-start-guide?pivots=programming-language-csharp) - [Introducing new Ollama Connector for Local Models](https://devblogs.microsoft.com/semantic-kernel/introducing-new-ollama-connector-for-local-models/) - [Introducing new Ollama Connector for Local Models](https://devblogs.microsoft.com/semantic-kernel/introducing-new-ollama-connector-for-local-models/) - [Using Semantic Kernel with Dependency Injection](https://devblogs.microsoft.com/semantic-kernel/using-semantic-kernel-with-dependency-injection/) - [Observability in Semantic Kernel](https://devblogs.microsoft.com/semantic-kernel/observability-in-semantic-kernel/) - [Integrating Model Context Protocol Tools with Semantic Kernel: A Step-by-Step Guide](https://devblogs.microsoft.com/semantic-kernel/integrating-model-context-protocol-tools-with-semantic-kernel-a-step-by-step-guide/) - [Introducing Microsoft.Extensions.AI Preview – Unified AI Building Blocks for .NET](https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-ai-preview/) - [Introducing Microsoft.Extensions.VectorData Preview](https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-vector-data/) - [.NET AI Template Now Available in Preview](https://devblogs.microsoft.com/dotnet/announcing-dotnet-ai-template-preview1/) - [Preview 2 of the .NET AI Template Now Available](https://devblogs.microsoft.com/dotnet/announcing-dotnet-ai-template-preview2/) - [Integrating Model Context Protocol Tools with Semantic Kernel: A Step-by-Step Guide](https://devblogs.microsoft.com/semantic-kernel/integrating-model-context-protocol-tools-with-semantic-kernel-a-step-by-step-guide/) - [Building a Model Context Protocol Server with Semantic Kernel](https://devblogs.microsoft.com/semantic-kernel/building-a-model-context-protocol-server-with-semantic-kernel/) - [Microsoft’s Agentic AI Frameworks: AutoGen and Semantic Kernel](https://devblogs.microsoft.com/semantic-kernel/microsofts-agentic-ai-frameworks-autogen-and-semantic-kernel/) - [AutoGen and Semantic Kernel, Part 2](https://devblogs.microsoft.com/semantic-kernel/semantic-kernel-and-autogen-part-2/) - [Microsoft’s Agentic Frameworks: AutoGen and Semantic Kernel](https://devblogs.microsoft.com/autogen/microsofts-agentic-frameworks-autogen-and-semantic-kernel/) ## Libraries - [microsoft/semantic-kernel](https://github.com/microsoft/semantic-kernel) - Integrate cutting-edge LLM technology quickly and easily into your apps ## Samples - [microsoft/semantic-kernel/dotnet/samples](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples) - [Azure-Samples/eShopOnAzure](https://github.com/Azure-Samples/eShopOnAzure) - [dotnet/eShop](https://github.com/dotnet/eShop) ================================================ FILE: docs/algorithm.md ================================================ # Algorithms ## Sites - [https://leetcode.com](https://leetcode.com) - [https://neetcode.io](https://neetcode.io/practice) ## 📘 Resources - [teivah/algodeck](https://github.com/teivah/algodeck) - An Open-Source Collection of 200+ Algorithmic Flash Cards to Help you Preparing your Algorithm & Data Structure Interview - [TheAlgorithms/C-Sharp](https://github.com/TheAlgorithms/C-Sharp) - All algorithms implemented in C#. - [TheAlgorithms/Go](https://github.com/TheAlgorithms/Go) - Algorithms Implemented in GoLang - [TheAlgorithms/Java](https://github.com/TheAlgorithms/Java) - All Algorithms implemented in Java - [SeanPrashad/leetcode-patterns](https://github.com/SeanPrashad/leetcode-patterns/tree/solutions) - [RehanSaeed/.NET-Big-O-Algorithm-Complexity-Cheat-Sheet](https://github.com/RehanSaeed/.NET-Big-O-Algorithm-Complexity-Cheat-Sheet) - Big-O complexities of common algorithms used in .NET and Computer Science. - [ashishps1/awesome-leetcode-resources](https://github.com/ashishps1/awesome-leetcode-resources) - Awesome LeetCode resources to learn Data Structures and Algorithms and prepare for Coding Interviews ## LeetCode Practices - [hxu296/leetcode-company-wise-problems-2022](https://github.com/hxu296/leetcode-company-wise-problems-2022) - Lists of company wise questions available on leetcode premium. - [krishnadey30/LeetCode-Questions-CompanyWise](https://github.com/krishnadey30/LeetCode-Questions-CompanyWise) - Contains Company Wise Questions sorted based on Frequency and all time - [tangweikun/awesome-leetcode](https://github.com/tangweikun/awesome-leetcode) - A collection of awesome leetcode solutions - [Blind 75 LeetCode Questions](https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions) - [LEETCODE PATTERNS](https://seanprashad.com/leetcode-patterns/) - [Best practice questions](https://www.techinterviewhandbook.org/best-practice-questions) - [Tech Interview Handbook](https://leetcode.com/list/9h4lgwl2/) - [Grind 75 questions](https://www.techinterviewhandbook.org/grind75) - [guobinhit/myleetcode](https://github.com/guobinhit/myleetcode) - Detailed Java & Go solution of LeetCode. - [haoel/leetcode](https://github.com/haoel/leetcode) - LeetCode Problems' Solutions - [youngyangyang04/leetcode-master](https://github.com/youngyangyang04/leetcode-master) - [fishercoder1534/Leetcode](https://github.com/fishercoder1534/Leetcode) - Solutions to LeetCode problems; updated daily. Subscribe to my YouTube channel for more - [pezy/LeetCode](https://github.com/pezy/LeetCode) - LeetCode solutions in C++ 11 and Python3 - [gouthampradhan/leetcode](https://github.com/gouthampradhan/leetcode) - Leetcode solutions - [qiyuangong/leetcode](https://github.com/qiyuangong/leetcode) - Python & JAVA Solutions for Leetcode - [pezy/LeetCode](https://github.com/pezy/LeetCode) - [MaskRay/LeetCode](https://github.com/MaskRay/LeetCode) - Solutions of LeetCode Online Judge - [MisterBooo/LeetCodeAnimation](https://github.com/MisterBooo/LeetCodeAnimation) - Demonstrate all the questions on LeetCode in the form of animation. - [gouthampradhan/leetcode](https://github.com/gouthampradhan/leetcode) - Leetcode solutions - [Blankj/awesome-java-leetcode](https://github.com/Blankj/awesome-java-leetcode) - LeetCode of algorithms with java solution(updating). - [fishercoder1534/Leetcode](https://github.com/fishercoder1534/Leetcode) - Demonstrate all the questions on LeetCode in the form of animation. - [aQuaYi/LeetCode-in-Go](https://github.com/aQuaYi/LeetCode-in-Go) - Go Solution for LeetCode algorithms problems, 100% coverage. - [youngyangyang04/leetcode-master](https://github.com/youngyangyang04/leetcode-master) - [luliyucoordinate/Leetcode](https://github.com/luliyucoordinate/Leetcode) - Play Leetcode with different programming language ## Articles - [LeetCode Prep for a Senior+ Software Engineer](https://trstringer.com/leetcode-prep-senior-plus/) - [LeetCode was HARD until I Learned these 15 Patterns](https://blog.algomaster.io/p/15-leetcode-patterns) ## 📺 Videos - [LeetCode PlayList - Fisher Coder](https://www.youtube.com/playlist?list=PLK0ZC7fyo01Jr4CwyEGPB_YYVYqoJS7LR) # Experiences - [LeetCode - Interview Experience](https://leetcode.com/discuss/interview-experience) ## Tools - [LeetCode-OpenSource/vscode-leetcode](https://github.com/LeetCode-OpenSource/vscode-leetcode) - Solve LeetCode problems in VS Code ================================================ FILE: docs/anti-patterns/anti-patterns.md ================================================ # Anti Patterns ## 📘 Resources - [Anti Patterns](https://deviq.com/antipatterns/antipatterns-overview) ## 📕 Articles - [Are These Six Software Anti-patterns Killing Your Delivery?](https://medium.com/expedia-group-tech/six-software-anti-patterns-that-kill-your-delivery-4fed09cc1a2b) ================================================ FILE: docs/anti-patterns/big-ball-of-mud.md ================================================ # Big Ball of Mud ## 📕 Articles - [Big Ball of Mud - DevIQ](https://deviq.com/antipatterns/big-ball-of-mud) - [Big Ball of Mud - The Daily Software Anti-Pattern](https://exceptionnotfound.net/big-ball-of-mud-the-daily-software-anti-pattern/) - [What is the Big Ball of Mud Anti-Pattern?](https://exceptionnotfound.net/big-ball-of-mud-anti-pattern-primers/) ================================================ FILE: docs/anti-patterns/code-smells.md ================================================ # Code Smells ## 📕 Articles - [Code Smells - DevIQ](https://deviq.com/antipatterns/code-smells) ================================================ FILE: docs/anti-patterns/god-object.md ================================================ # God Object ## 📕 Articles - [God Objects](https://exceptionnotfound.net/god-objects-the-daily-software-anti-pattern/) ================================================ FILE: docs/anti-patterns/leaky-abstractions.md ================================================ # Leaky Abstractions ## 📕 Articles - [Clean Architecture Example & Breakdown](https://codeopinion.com/clean-architecture-example-breakdown/) ## 📺 Videos - [Clean Architecture Example & Breakdown - Do I use it?](https://www.youtube.com/watch?v=Ys_W6MyWOCw) ================================================ FILE: docs/anti-patterns/partial-object.md ================================================ # Partial/Optional Object ## 📕 Articles - [Don't POOP - The Partial/Optional Object Population Anti-Pattern](https://scotthannen.org/blog/2021/04/19/partial-optional-object-population.html) ================================================ FILE: docs/anti-patterns/static-cling.md ================================================ # Static Cling ## 📕 Articles - [Static Cling - DevIQ](https://deviq.com/antipatterns/static-cling) - [Static methods considered evil?](https://enterprisecraftsmanship.com/posts/static-methods-evil/) ================================================ FILE: docs/architectural-design-principles/architectural-design-principles.md ================================================ # Architectural Design Principles ## 📘 Resources - [chanakaudaya/solution-architecture-patterns](https://github.com/chanakaudaya/solution-architecture-patterns) - Reusable, vendor-neutral, industry-specific, vendor-specific solution architecture patterns for enterprise - [Architectural Styles vs. Architectural Patterns vs. Design Patterns](https://herbertograca.com/2017/07/28/architectural-styles-vs-architectural-patterns-vs-design-patterns/) - [Architectural principles](https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/architectural-principles) - [Principles](https://deviq.com/principles/principles-overview) - [10 Crucial Software Development Principles to Live By](https://www.laneways.agency/software-development-principles/) - [10 OOP Design Principles Every Programmer Should Know](https://hackernoon.com/10-oop-design-principles-every-programmer-should-know-f187436caf65) - [Design Principles](https://java-design-patterns.com/principles/) - java-design-patterns.com - [Principles](http://principles-wiki.net/principles:start) - principles-wiki.net ================================================ FILE: docs/architectural-design-principles/cap.md ================================================ # CAP Theorem ## Articles - [System design fundamentals: What is the CAP theorem?](https://www.educative.io/blog/what-is-cap-theorem) - [The CAP theorem of domain modeling](https://vkhorikov.medium.com/the-cap-theorem-of-domain-modeling-2e3763301caf) - [CAP Theorem Explained](https://blog.algomaster.io/p/cap-theorem-explained) - [An Illustrated Proof of the CAP Theorem](https://mwhittaker.github.io/blog/an_illustrated_proof_of_the_cap_theorem/) - [CAP Theorem: Revisited](https://robertgreiner.com/cap-theorem-revisited/) - [CAP Theorem: Explained](https://robertgreiner.com/cap-theorem-explained/) - [What is the CAP theorem?](https://www.educative.io/blog/what-is-cap-theorem) - [Understanding CAP Theorem: Balancing Consistency, Availability, and Partition Tolerance in Distributed Systems](https://factor-bytes.com/2023/07/22/understanding-cap-theorem-balancing-consistency-availability-and-partition-tolerance-in-distributed-systems/) ## 📺 Videos - [My thoughts on the CAP theorem](https://www.youtube.com/watch?v=KmGy3sU6Xw8) - [Does CAP Theorem apply to Microservices?](https://www.youtube.com/watch?v=PgHMtMmSn9s) ================================================ FILE: docs/architectural-design-principles/cohesion.md ================================================ # Cohesion ## 📕 Articles - [Highly COHESIVE Software Design to tame Complexity](https://codeopinion.com/highly-cohesive-software-design-to-tame-complexity/) ## 📺 Videos - [Highly COHESIVE Software Design to tame Complexity](https://www.youtube.com/watch?v=r0-GC3Y_OME) ================================================ FILE: docs/architectural-design-principles/coupling.md ================================================ # Minimize Coupling ## 📕 Articles - [Write Stable Code using Coupling Metrics](https://codeopinion.com/write-stable-code-using-coupling-metrics/) - [Why is loose coupling between services so important?](https://www.ben-morris.com/why-is-loose-coupling-between-services-so-important/) ## 📺Videos - [Write Stable Code using Coupling Metrics](https://www.youtube.com/watch?v=wRVbHDkOMSM&feature=emb_title) ================================================ FILE: docs/architectural-design-principles/cqs.md ================================================ # Command Query Separation ================================================ FILE: docs/architectural-design-principles/cross-cutting-concerns.md ================================================ # Cross Cutting Concerns ## 📕 Articles - [Crosscutting Concerns]() - [A Brief Intro to Clean Architecture, Clean DDD, and CQRS](https://blog.jacobsdata.com/2020/02/19/a-brief-intro-to-clean-architecture-clean-ddd-and-cqrs) - [Managing Cross Cutting Concerns – Logging](https://www.cshandler.com/2015/10/managing-cross-cutting-concerns-logging.html) - [Cross cutting concern example](https://stackoverflow.com/questions/23700540/cross-cutting-concern-example) - [cross cutting concern](https://medium.com/anatta-design/cross-cutting-concern-aadf4f51a5c1) - [Cross-Cutting Concerns for An Enterprise Application](https://dzone.com/articles/cross-cutting-concerns-for-an-enterprise-applicati) - [Terminology: cross cutting concern](https://crosscuttingconcerns.com/Terminology-cross-cutting-concern) - [Crosscutting Concerns](https://oncodedesign.com/crosscutting-concerns/) - [Using the Decorator Pattern to handle cross-cutting concerns](https://www.davideguida.com/using-decorators-to-handle-cross-cutting-concerns/) - [Chain of Responsibility pattern for handling cross-cutting concerns](https://arturkrajewski.silvrback.com/chain-of-responsibility-pattern-for-handling-cross-cutting-concerns) - [Using the Decorator Pattern to handle cross-cutting concerns](https://www.davidguida.net/using-decorators-to-handle-cross-cutting-concerns/) - [Tackling cross-cutting concerns with a mediator pipeline](https://lostechies.com/jimmybogard/2014/09/09/tackling-cross-cutting-concerns-with-a-mediator-pipeline/) - [MediatR Pipeline Examples](https://lostechies.com/jimmybogard/2016/10/13/mediatr-pipeline-examples/) - [Mediator Behaviors](https://github.com/jbogard/MediatR/wiki/Behaviors) - [Applying cross-cutting concerns in ASP.NET Core with MediatR using behaviors](https://lurumad.github.io/cross-cutting-concerns-in-asp-net-core-with-meaditr) - [Meanwhile... on the command side of my architecture](https://blogs.cuttingedge.it/steven/posts/2011/meanwhile-on-the-command-side-of-my-architecture/) - [How to use MediatR Pipeline Behaviours](https://garywoodfine.com/how-to-use-mediatr-pipeline-behaviours/) - [MediatR Behaviors](https://codeopinion.com/mediatr-behaviors/) ================================================ FILE: docs/architectural-design-principles/dependency-inversion.md ================================================ # Dependency Inversion ## 📕 Articles - [Singleton vs Dependency Injection](https://enterprisecraftsmanship.com/posts/singleton-vs-dependency-injection/) - [Don’t Call Constructors Unless You Have No Choice, And You Always Have a Choice](https://scotthannen.org/blog/2018/04/03/tame-your-dependency-injection-registration.html) - [Dependency Inversion Principle - DevIQ](https://deviq.com/principles/dependency-inversion-principle) - [DIP in the Wild](https://martinfowler.com/articles/dipInTheWild.html) ## 📺 Videos - [The refactoring test (1) - Dependency Inversion & Unit tests | Cracking the .NET interview](https://www.youtube.com/watch?v=U3QvTaw224o) ## 🚀 Samples - [TanvirArjel/SolidPrinciples](https://github.com/TanvirArjel/SolidPrinciples) - Contains the clear examples of SOLID deign principles. ================================================ FILE: docs/architectural-design-principles/dry.md ================================================ # Dry ## 📕 Articles - [Don't Repeat Yourself](https://deviq.com/principles/dont-repeat-yourself) - [DRY is a footgun, remember to YAGNI](https://swizec.com/blog/dry-is-a-footgun-remember-to-yagni/) - [DRY is about Knowledge](https://verraes.net/2014/08/dry-is-about-knowledge/) - [Why DRY? ](https://blog.ploeh.dk/2014/08/07/why-dry/) ================================================ FILE: docs/architectural-design-principles/encapsulation.md ================================================ # Encapsulation ## 📕 Articles - [Encapsulation - DevIQ](https://deviq.com/principles/encapsulation) ================================================ FILE: docs/architectural-design-principles/fail-fast.md ================================================ # Fail-Fast ## 📕 Articles - [Fail Fast - DevIQ](https://deviq.com/principles/fail-fast) - [Fail Fast principle - Vladimir Khorikov](https://enterprisecraftsmanship.com/posts/fail-fast-principle/) ================================================ FILE: docs/architectural-design-principles/favor-composition-over-inheritance.md ================================================ # Favor Composition Over Inheritance ## 📕 Articles - [Favor Composition over Inheritance](https://icodemag.com/favor-composition-over-inheritance/) - [Why you should favor composition over inheritance](https://dev.to/romansery/why-you-should-favor-composition-over-inheritance-57m6) - [Composition vs Inheritance](https://www.journaldev.com/12086/composition-vs-inheritance) ## 📺 Videos - [Composition over Inheritance](https://www.youtube.com/watch?v=wfMtDGfHWpA) - [The Power of Composition - Scott Wlaschin - NDC Oslo 2020](https://www.youtube.com/watch?v=rCKPgu4DvcE) ================================================ FILE: docs/architectural-design-principles/grasp.md ================================================ # GRASP ## 📕 Articles - [GRASP – General Responsibility Assignment Software Patterns Explained](https://www.kamilgrzybek.com/design/grasp-explained/) ================================================ FILE: docs/architectural-design-principles/interface-segregation.md ================================================ # Interface Segregation ## 📕 Articles - [Interface Segregation Principle - DevIQ](https://deviq.com/principles/interface-segregation) ================================================ FILE: docs/architectural-design-principles/inversion-control.md ================================================ # Inversion Of Control ## 📕 Articles - [SOLID Wash Tunnel - IoC Container](https://www.ledjonbehluli.com/posts/wash-tunnel/ioc_container/) - [SOLID Wash Tunnel - Dependency Injection](https://www.ledjonbehluli.com/posts/wash-tunnel/dependency_injection/) ## 📺 Videos - [SOLID Principles for C# Developers](https://www.pluralsight.com/courses/csharp-solid-principles) ================================================ FILE: docs/architectural-design-principles/kiss.md ================================================ # KISS ## 📕 Articles - [KISS - Java-Design-Patterns](https://java-design-patterns.com/principles/#kiss) - [Principles of Good Programming](https://www.artima.com/weblogs/viewpost.jsp?thread=331531) - [Keep It Simple Stupid (KISS)](http://principles-wiki.net/principles:keep_it_simple_stupid) - [Keep It Simple - DevIQ](https://deviq.com/principles/keep-it-simple) ================================================ FILE: docs/architectural-design-principles/open-closed-principles.md ================================================ # Open/Closed Principles ## 📕 Articles - [Open-Closed Principle - DevIQ](https://deviq.com/principles/open-closed-principle) - [SOLID Design in C#: The Open-Close Principle (OCP)](https://blog.ndepend.com/solid-design-the-open-close-principle-ocp/) ## 📺 Videos - [The refactoring test (2) - Open-Closed, Single Responsibility | Cracking the .NET interview](https://www.youtube.com/watch?v=Yd4GnWeEkIY) - [SOLID Principles for C# Developers](https://www.pluralsight.com/courses/csharp-solid-principles) - [SOLID: Open closed principle (OCP) made easy](https://www.youtube.com/watch?v=ozV4gsRIqlU) ## 🚀 Samples - [TanvirArjel/SolidPrinciples](https://github.com/TanvirArjel/SolidPrinciples) - Contains the clear examples of SOLID deign principles. ================================================ FILE: docs/architectural-design-principles/persistence-ignorance.md ================================================ # Persistence Ignorance ## 📕 Articles - [Persistence Ignorance](https://deviq.com/principles/persistence-ignorance) - [Understanding Persistence Ignorance Principle](http://techxposer.com/2018/12/29/understanding-persistence-ignorance-principle/) - [Infrastructure Ignorance](https://ayende.com/blog/3137/infrastructure-ignorance) - [Persistence Ignorance](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice#the-domain-model-layer) ================================================ FILE: docs/architectural-design-principles/single-responsibility.md ================================================ # Single Responsibility ## 📕 Articles - [Single Responsibility Principle - DevIQ](https://deviq.com/principles/single-responsibility-principle) - [SOLID Design in C#: The Single Responsibility Principle (SRP)](https://blog.ndepend.com/solid-design-the-single-responsibility-principle-srp/) ## 📺 Videos - [SOLID: Single responsibility principle (SRP) made eas](https://www.youtube.com/watch?v=2JAS5hL1T7w) - [SOLID Principles for C# Developers](https://www.pluralsight.com/courses/csharp-solid-principles) ## 🚀 Samples - [TanvirArjel/SolidPrinciples](https://github.com/TanvirArjel/SolidPrinciples) - Contains the clear examples of SOLID deign principles. ================================================ FILE: docs/architectural-design-principles/solid.md ================================================ # Solid ## 📕 Articles - [SOLID - DevIQ](https://deviq.com/principles/solid) - [Solid Principles with C# .NET Core with Real-World Usage](https://procodeguide.com/design/solid-principles-with-csharp-net-core/) - [SOLID Principles in C#](https://steven-giesel.com/blogPost/a252f2da-1ae8-4449-9b5f-43657308eabb) - [SOLID Design in C#: The Single Responsibility Principle (SRP)](https://blog.ndepend.com/solid-design-the-single-responsibility-principle-srp/) - [SOLID Design in C#: The Open-Close Principle (OCP)](https://blog.ndepend.com/solid-design-the-open-close-principle-ocp/) - [Mastering SOLID Principles in C#: A Practical Guide](https://www.syncfusion.com/blogs/post/mastering-solid-principles-csharp) # Videos - [SOLID Principles for C# Developers](https://www.pluralsight.com/courses/csharp-solid-principles) ## 🚀 Samples - [TanvirArjel/SolidPrinciples](https://github.com/TanvirArjel/SolidPrinciples) - Contains the clear examples of SOLID deign principles. ================================================ FILE: docs/architectural-design-principles/yagni.md ================================================ # YAGNI ## 📕 Articles - [Yagni - Martin Fowler](https://martinfowler.com/bliki/Yagni.html) - [YAGNI - DevIQ](https://deviq.com/principles/yagni) - [YAGNI - java-design-patterns](https://java-design-patterns.com/principles/#yagni) - [DRY is a footgun, remember to YAGNI](https://swizec.com/blog/dry-is-a-footgun-remember-to-yagni/) ================================================ FILE: docs/architecture-documententation.md ================================================ # Architecture Documentation (ADR) ## Resources - [arc42/arc42-template](https://github.com/arc42/arc42-template) - arc42 - the template for software architecture documentation and communication - [joelparkerhenderson/architecture-decision-record](https://github.com/joelparkerhenderson/architecture-decision-record) - Architecture decision record (ADR) examples for software planning, IT leadership, and template documentation - [C4Model.com](https://c4model.com) ## Articles - [Architecture Decision Records](https://endjin.com/blog/2023/07/architecture-decision-records) - [Documenting software architecture with arc42](https://www.innoq.com/en/blog/2022/08/brief-introduction-to-arc42/) - [Demystifying Architectural Decision Records: Why Every Project Needs Them](https://www.dandoescode.com/blog/demystifying-architectural-decision-records-why-every-project-needs-them) ## 📺 Videos - [Architecture Decision Records (ADR) as a LOG that answers "WHY?"](https://www.youtube.com/watch?v=6H6zfCNeqek) ## Samples - [bitsmuggler/arc42-c4-software-architecture-documentation-example](https://github.com/bitsmuggler/arc42-c4-software-architecture-documentation-example) - [milanm/architecture-docs](https://github.com/milanm/architecture-docs) - Software architecture documentation example that uses arc42 and C4 Model with AsciiDoc ================================================ FILE: docs/azure/aks.md ================================================ # Azure Kubernetes Service (AKS) ## 📘 Resources - [Azure Kubernetes Service (AKS)](https://learn.microsoft.com/en-us/azure/aks/) - [Architect modern applications in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-modern-apps/) - [Kubernetes Learning Path](https://azure.microsoft.com/en-us/resources/kubernetes-learning-path/) ## Samples - [Azure-Samples/aks-store-demo](https://github.com/Azure-Samples/aks-store-demo) ⭐ - Sample microservices app for AKS demos, tutorials, and experiments ================================================ FILE: docs/azure/azure-api-management.md ================================================ # Azure API Management ## 📘 Resources - [Architect API integration in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-api-integration/) - [API Management documentation](https://docs.microsoft.com/en-us/azure/api-management/) ## 📕 Articles ## 📺 Videos - [The Ultimate Azure API Management Course](https://www.youtube.com/watch?v=K-tYU8GOUt0) ================================================ FILE: docs/azure/azure-app-service-plan.md ================================================ # Azure AppService Plan ## 📺 Videos - [Azure App Service Plans](https://www.youtube.com/watch?v=YV23WNtQZmw) ================================================ FILE: docs/azure/azure-app-service.md ================================================ # Azure App Service ## 📘 Resources - [Deploy a website to Azure with Azure App Service](https://docs.microsoft.com/en-us/learn/paths/deploy-a-website-with-azure-app-service/) - [Migrate ASP.NET Apps to Azure](https://docs.microsoft.com/en-us/learn/paths/migrate-dotnet-apps-azure/) - [Architect modern applications in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-modern-apps/) - [Azure Static Web Apps](https://docs.microsoft.com/en-us/learn/paths/azure-static-web-apps/) - [AZ-400: Develop an instrumentation strategy](https://docs.microsoft.com/en-us/learn/paths/az-400-develop-instrumentation-strategy/) - [Build serverless, full stack applications in Azure](https://docs.microsoft.com/en-us/learn/paths/build-serverless-full-stack-apps-azure/) - [Migrate an ASP.NET web application to Azure with Visual Studio](https://docs.microsoft.com/en-us/learn/paths/migrate-aspnet-web-application/) ## 📕 Articles - [Introduction to Azure App Service - part 1 (The overview)](https://www.azurebarry.com/introduction-to-azure-app-service-part-1/) - [Introduction to Azure App Service - part 2 (Hosting Web Applications with Web Apps)](https://www.azurebarry.com/introduction-to-azure-app-service-part-2-the-overview/) - [Introduction to Azure App Service - part 3 (Providing a Backend for Your Mobile Applications with Mobile Apps)](https://www.azurebarry.com/introduction-to-azure-app-service-part-3-the-overview/) - [Introduction to Azure App Service - part 4 (Respond to Events with Azure Functions)](https://www.azurebarry.com/introduction-to-azure-app-service-part-4-providing-a-backend-for-your-mobile-applications-with-mobile-apps/) ## 📺 Videos - [Azure App Service Introduction](https://azure4everyone.com/posts/2019/07/app-service-intro/) - [Continuous Deployment using App Service Deployment Center](https://azure4everyone.com/posts/2019/09/appservice-deployment-center/) ================================================ FILE: docs/azure/azure-arc.md ================================================ # Azure Arc ## 📕 Articles - [Azure Arc for Developers](https://techcommunity.microsoft.com/t5/itops-talk-blog/azure-arc-for-developers/ba-p/2561513) ## 📺 Videos - [Manage your hybrid cloud environment using Azure Arc](https://channel9.msdn.com/Shows/IT-Ops-Talk/Manage-your-hybrid-cloud-environment-using-Azure-Arc) ================================================ FILE: docs/azure/azure-cloud.md ================================================ # Azure Cloud ## 📘 Resources - [lukemurraynz/awesome-azure-architecture](https://github.com/lukemurraynz/awesome-azure-architecture) - [Azure Docs](docs.microsoft.com/en-us/azure) - [Azure Learn](https://dotnet.microsoft.com/learn/azure/architecture) - [The Azure Kubernetes Service (AKS) Architecture Map](https://techcommunity.microsoft.com/t5/azure-developer-community-blog/the-azure-kubernetes-service-aks-architecture-map/ba-p/1078714) - [The Cloud-native Azure Application Architect Map](https://techcommunity.microsoft.com/t5/azure-developer-community-blog/the-cloud-native-azure-application-architect-map/ba-p/812242) - [The Azure Infrastructure Architect Map](https://techcommunity.microsoft.com/t5/azure-developer-community-blog/the-azure-infrastructure-architect-map/ba-p/766268) - [The Azure Solution Architect Map](https://techcommunity.microsoft.com/t5/azure-developer-community-blog/the-azure-solution-architect-map/ba-p/689700) - [The Azure Security Architect Map](https://techcommunity.microsoft.com/t5/azure-developer-community-blog/the-azure-security-architect-map/ba-p/714091) - [microsoft/azuretipsandtricks](https://github.com/microsoft/azuretipsandtricks) - [ddneves/awesome-azure-learning](https://github.com/ddneves/awesome-azure-learning) - [Microsoft Certified: Azure Developer Associate](https://docs.microsoft.com/en-us/learn/certifications/azure-developer/) - [Free azure training (70-533)](http://www.cloudranger.net/azure-training/) - [AZ-900 Microsoft Azure Fundamentals Free Full Course and Study Guide](https://marczak.io/az-900/) ## 📺 Videos - [hlukemurraynz/awesome-azure-architecture](https://github.com/lukemurraynz/awesome-azure-architecture) - [Azure Fundamentals part 1: Describe core Azure concepts](https://docs.microsoft.com/en-us/learn/paths/az-900-describe-cloud-concepts/) - [Azure Fundamentals part 2: Describe core Azure services](https://docs.microsoft.com/en-us/learn/paths/az-900-describe-core-azure-services/) - [Azure Fundamentals part 3: Describe core solutions and management tools on Azure](https://docs.microsoft.com/en-us/learn/paths/az-900-describe-core-solutions-management-tools-azure/) - [Azure Fundamentals part 4: Describe general security and network security features](https://docs.microsoft.com/en-us/learn/paths/az-900-describe-general-security-network-security-features/) - [Azure Fundamentals part 5: Describe identity, governance, privacy, and compliance features](https://docs.microsoft.com/en-us/learn/paths/az-900-describe-identity-governance-privacy-compliance-features/) - [Azure Playlist - Rahul Nath](https://www.youtube.com/playlist?list=PL59L9XrzUa-n7jlb-bPuaY4TE-yCYNUnb) - [Azure Tutorials Playlist - Nick Chapsas](https://www.youtube.com/playlist?list=PLUOequmGnXxPPcrN0PFclBABXEckcPzYY) - [Microsoft Azure for Beginners - Introduction to Azure Services Playlist - Adam Marczak](https://www.youtube.com/playlist?list=PLGjZwEtPN7j96A9JNpA4ouI3bH-uWZ0Ht) - [Azure Playlist - Mohamad Lawand](https://www.youtube.com/playlist?list=PLcvTyQIWJ_ZrrcBn_tQ0Ny1VwJFpUIf5r) - [Exploring Azure [EP 1] - General Overview](https://www.youtube.com/watch?v=0ZX76tr7myQ) ## 📕 Articles - [Cars Island Car Rental on the Azure cloud - part 1](https://daniel-krzyczkowski.github.io/Cars-Island-Car-Rental-On-Azure-Cloud/) - [Modern application development](https://azure.microsoft.com/en-us/solutions/modern-application-development/) ## 🚀 Samples - [Daniel-Krzyczkowski/MicrosoftAzure](https://github.com/Daniel-Krzyczkowski/MicrosoftAzure) - Microsoft Azure code samples. - [Daniel-Krzyczkowski/Cars-Island-On-Azure](https://github.com/Daniel-Krzyczkowski/Cars-Island-On-Azure) - Cars Island is a fake car rental company which used Microsoft Azure cloud services to implement the system for managing car renting. - [Daniel-Krzyczkowski/Smart-Accounting](https://github.com/Daniel-Krzyczkowski/Smart-Accounting) - This repository contains a solution for collecting invoices in a digital way. - [Azure-Samples/container-apps-store-api-microservice](https://github.com/Azure-Samples/container-apps-store-api-microservice) - Sample microservices solution using Azure Container Apps, Dapr, Cosmos DB, and Azure API Management - [Daniel-Krzyczkowski/Cloud-Pharmacy-On-Azure](https://github.com/Daniel-Krzyczkowski/Cloud-Pharmacy-On-Azure) - Cloud Pharmacy is a fake medical company which used Microsoft Azure cloud services to implement the system for patients, physicians, and medicaments store. ## 📦 Libraries - [Azure/azure-libraries-for-net](https://github.com/Azure/azure-libraries-for-net) - Azure libraries for .Net - [Azure/Azurite](https://github.com/Azure/Azurite) ## Courses - [Developing Solutions for Microsoft Azure (AZ-204)](https://www.pluralsight.com/paths/developing-solutions-for-microsoft-azure-az-204) ================================================ FILE: docs/azure/azure-configuration.md ================================================ # Azure App Configuration ## 📺 Videos - [AZURE APP CONFIGURATION | Central Store For Application Configuration | ASP.NET Core Series](https://www.youtube.com/watch?v=VEjYW14WKRM&t=3s) - [FEATURE FLAGS in ASP NET Core | Azure App Configuration | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=qtp90IYMRh8&) - [ENVIRONMENT SPECIFIC APP CONFIGURATION - 5 Ways To Manage For ASP NET on AZURE | ASP.NET Core Series](https://www.youtube.com/watch?v=wTSu2aCoR7Y&) - [Feature flags with .NET and Azure App Configuration](https://www.youtube.com/watch?v=CcbUqdh8Xw8) - [CONFIGURATION in ASP.NET Core | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=5GlgHV_12-k) ================================================ FILE: docs/azure/azure-functions.md ================================================ # Azure Functions / Azure Serverless ## 📘 Resources - [Azure Functions documentation](https://docs.microsoft.com/en-us/azure/azure-functions/) - [Create serverless applications](https://docs.microsoft.com/en-us/learn/paths/create-serverless-applications/) ## 📕 Articles - [Introduction to Azure Functions](https://docs.microsoft.com/en-us/azure/azure-functions/functions-overview) - [Build event-driven solutions with Azure Functions and Cosmos DB](https://www.youtube.com/watch?v=8WMjRIw6QzQ) - [Azure Functions in practice](https://www.troyhunt.com/azure-functions-in-practice/) - [Azure Functions triggers and bindings concepts](https://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings) - [Azure Blob storage bindings for Azure Functions overview](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob) - [Azure Functions HTTP triggers and bindings overview](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook) - [RabbitMQ bindings for Azure Functions overview](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-rabbitmq) - [Azure Service Bus bindings for Azure Functions](https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus) - [Connect functions to Azure services using bindings](https://docs.microsoft.com/en-us/azure/azure-functions/add-bindings-existing-function) ## 📺 Videos - [Azure Function Apps Tutorial | Introduction for serverless programming](https://www.youtube.com/watch?v=Vxf-rOEO1q4) - [Azure Functions: Step by Step Project](https://www.youtube.com/watch?v=Ft34VWPpiA4) - [Intro to Azure Functions - What they are and how to create and deploy them](https://www.youtube.com/watch?v=zIfxkub7CLY) - [Migrating Your API to Serverless using Azure Functions](https://www.youtube.com/watch?v=89WXgaY-NqY) - [C# Azure Functions Tutorial - Queue Trigger | Part 1](https://www.youtube.com/watch?v=tZf1zR07yfw) - [Exploring Azure [EP 2] - Azure Functions (Part 1)](https://www.youtube.com/watch?v=a4e1eh6MoSU) - [Exploring Azure [EP 3] - Azure Functions (Part 2)](https://www.youtube.com/watch?v=njJN3MfU218) - [Azure FUNCTION Tutorial | Blob Trigger example with C#](https://www.youtube.com/watch?v=zQP9TBGEoDE) - [Azure Functions, GitHub Actions and .NET 5 Isolated Processes](https://www.youtube.com/watch?v=ZEV9MSqOsts) - [DEPENDENCY INJECTION In AZURE FUNCTIONS⚡| Azure Series](https://www.youtube.com/watch?v=m_jrALXcrXc - [AZURE FUNCTION ⚡ - Integrate with Azure Queue Storage | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=27OUTVdK2_0) ## 🚀 Samples - [burkeholland/heroes-api](https://github.com/burkeholland/heroes-api) - [ariksman/MoviesAzureFuncApi](https://github.com/ariksman/MoviesAzureFuncApi) - [jedi91/MovieSearch](https://github.com/jedi91/MovieSearch) - [ShawnShiSS/clean-architecture-azure-cosmos-db](https://github.com/ShawnShiSS/clean-architecture-azure-cosmos-db) - A starting point to build a web API to work with Azure Cosmos DB using .NET 5 and Azure Cosmos DB .NET SDK V3, based on Clean Architecture and repository design pattern. Partition key is also implemented through the repository pattern. ## 📦 Libraries - [JamesRandall/FunctionMonkey](https://github.com/JamesRandall/FunctionMonkey) - Write more elegant Azure Functions with less boilerplate, more consistency, and support for REST APIs. - [smithgeek/voyager](https://github.com/smithgeek/voyager) - Alternative routing system for aspnet api applications. ================================================ FILE: docs/azure/azure-load-balancing.md ================================================ # Load Balancing ## 📘 Resources - [Improve application scalability and resiliency by using Azure Load Balancer](https://docs.microsoft.com/en-us/learn/modules/improve-app-scalability-resiliency-with-load-balancer/) - [Load balance your web service traffic with Application Gateway](https://docs.microsoft.com/en-us/learn/modules/load-balance-web-traffic-with-application-gateway/) - [Enhance your service availability and data locality by using Azure Traffic Manager](https://docs.microsoft.com/en-us/learn/modules/distribute-load-with-traffic-manager/) - [Architect network infrastructure in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-network-infrastructure/) ================================================ FILE: docs/azure/azure-logic-app.md ================================================ # Azure Logic App ## 📘 Resources - [Build automated workflows to integrate data and apps with Azure Logic Apps](https://docs.microsoft.com/en-us/learn/paths/build-workflows-with-logic-apps/) ================================================ FILE: docs/azure/azure-resource-manager.md ================================================ # Azure Resource Manager (ARM) ## 📘 Resources - [Deploy and manage resources in Azure by using ARM templates](https://docs.microsoft.com/en-us/learn/paths/deploy-manage-resource-manager-templates/) - [Architect infrastructure operations in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-infrastructure-operations/) - [Implement resource management security in Azure](https://docs.microsoft.com/en-us/learn/paths/implement-resource-mgmt-security/) ## 📕 Articles - [Be more efficient developer with Azure Developer Starter Pack](https://daniel-krzyczkowski.github.io/Be-More-Efficient-Developer-With-Azure-Developer-Starter-Pack/) ## 📺 Videos - [Be more efficient developer with Azure Developer Starter Pack](https://www.youtube.com/watch?v=8XJQLaWAPro) ## 🚀 Samples - [Daniel-Krzyczkowski/AzureDeveloperTemplates](https://github.com/Daniel-Krzyczkowski/AzureDeveloperTemplates) - This repository contains helpful code templates for Azure cloud developers. ================================================ FILE: docs/azure/azure-resource.md ================================================ # Azure Resource && Resource Group ## 📺 Videos - [AZ-900 Episode 8 | Resources, Resource Groups & Resource Manager | Azure Fundamentals Course](https://www.youtube.com/watch?v=gIhf-S7BCdo) ================================================ FILE: docs/azure/azure-security/azure-active-directory.md ================================================ # Azure Active Directory (Azure AD) ## 📘 Resources - [AZ-104: Manage identities and governance in Azure](https://docs.microsoft.com/en-us/learn/paths/az-104-manage-identities-governance/) - [Secure your cloud applications in Azure](https://docs.microsoft.com/en-us/learn/paths/secure-your-cloud-apps/) - [Manage identity and access in Azure Active Directory](https://docs.microsoft.com/en-us/learn/paths/manage-identity-and-access/) - [Protect identity and access with Azure Active Directory](https://docs.microsoft.com/en-us/learn/paths/m365-identity/) - [Implement Microsoft identity – Associate](https://docs.microsoft.com/en-us/learn/paths/m365-identity-associate/) ## 📕 Articles - [Automate Azure AD B2C policies release with GitHub Actions](https://daniel-krzyczkowski.github.io/Automate-Azure-AD-B2C-policies-release-with-GitHub-Actions/) - [Manage guest user access with Azure AD External Identities](https://daniel-krzyczkowski.github.io/Manage-Guest-User-Access-with-Azure-Ad-External-Identities/) - [Azure AD B2C with external authorization store](https://daniel-krzyczkowski.github.io/Azure-AD-B2C-With-External-Authorization-Store/) - [Azure Active Directory passwordless sign-in with FIDO2 Security Keys](https://daniel-krzyczkowski.github.io/Passwordless-Access-With-Azure-AD/) - [Lost in Azure cloud identity - part 1](https://daniel-krzyczkowski.github.io/Lost-In-Azure-Cloud-Identity-Series-Introduction/) - [Lost in Azure cloud identity - part 2](https://daniel-krzyczkowski.github.io/Lost-In-Azure-Cloud-Identity-Serie-Part2/) - [Lost in Azure cloud identity - part 3](https://daniel-krzyczkowski.github.io/Lost-In-Azure-Cloud-Identity-Serie-Part3/) ## 📺 Videos - [Automate Azure AD B2C custom policies release with GitHub Actions](https://www.youtube.com/watch?v=h25h-fxL_K4) - [Azure AD B2C with external authorization store](https://www.youtube.com/watch?v=_umcCiSOFv0) - [How to provide access to application for different types of users with Azure AD and Azure AD B2C](https://www.youtube.com/watch?v=NrkbWPDFGzI) - [Introduction to the Microsoft Identity Platform](https://www.youtube.com/watch?v=_JhftCwwZqs) - [How to secure solution with Azure Active Directory B2C (Azure AD B2C)](https://www.youtube.com/watch?v=LDh1bJOihBg) - [Working with Azure AD B2C in ASP.NET](https://www.youtube.com/watch?v=oG9GcYIuYQM) - [Getting Started with Azure Identity - Steve Smith](https://www.youtube.com/watch?v=GaUGxoNb_YE) ================================================ FILE: docs/azure/azure-security/azure-key-vault.md ================================================ # Azure Key Vault ## 📕 Articles - [Secrets Access with Managed Identities in .NET Applications](https://auth0.com/blog/secrets-access-managed-identities-dotnet/) - [Azure Key Vault configuration provider in ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-5.0) - [Introducing Azure Key Vault to Kubernetes](https://mrdevops.io/introducing-azure-key-vault-to-kubernetes-931f82364354) - [Read secrets from Azure Key Vault in your GitHub Action](https://dev.to/massimobonanni/read-secrets-from-azure-key-vault-in-your-github-action-3d8l) - [Creating Kubernetes Secrets from Azure Key Vault with the CSI Driver](https://samcogan.com/creating-kubernetes-secrets-from-azure-key-vault-with-the-csi-driver/) - [Managing Kubernetes Secrets with HashiCorp Vault vs. Azure Key Vault](https://www.appvia.io/blog/managing-kubernetes-secrets-with-hashicorp-vault-vs-azure-key-vault) - [Mount Vault secrets through Container Storage Interface (CSI) volume](https://developer.hashicorp.com/vault/tutorials/kubernetes/kubernetes-secret-store-driver) ## Videos - [Secure Developer Workflows with Vault & Github Actions](https://www.youtube.com/watch?v=Vl5dO3EzNJ0) - [Using OIDC With HashiCorp Vault and GitHub Actions](https://www.youtube.com/watch?v=lsWOx9bzAwY) ## Libraries - [james-gould/azure-keyvault-emulator](https://github.com/james-gould/azure-keyvault-emulator) - An emulator for Azure Key Vault. Compatible with the Azure Client SDK, runnable with Docker or .NET Aspire. - [Azure/secrets-store-csi-driver-provider-azure](https://github.com/Azure/secrets-store-csi-driver-provider-azure) - Azure Key Vault provider for Secret Store CSI driver allows you to get secret contents stored in Azure Key Vault instance and use the Secret Store CSI driver interface to mount them into Kubernetes pods ================================================ FILE: docs/azure/azure-sql.md ================================================ # Azure SQL ## 📘 Resources - [Azure SQL fundamentals](https://docs.microsoft.com/en-us/learn/paths/azure-sql-fundamentals/) - [Optimize query performance in SQL Server](https://docs.microsoft.com/en-us/learn/paths/optimize-query-performance-sql-server/) - [Azure Database for PostgreSQL](https://docs.microsoft.com/en-us/learn/paths/introduction-to-azure-postgres/) - [Architect a data platform in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-data-platform/) - [Work with relational data in Azure](https://docs.microsoft.com/en-us/learn/paths/work-with-relational-data-in-azure/) ## 📺 Videos - [Azure SQL Database Tutorial | Relational databases in Azure](https://www.youtube.com/watch?v=BgvEOkcR0Wk) ================================================ FILE: docs/azure/index.md ================================================ - [Azure Application Architecture](azure-application-architecture.md) - [Azure API Management](azure-api-management.md) - [Azure App Service](azure-app-service.md) - [Azure Functions / Azure Serverless](azure-functions.md) - [Azure Kubernetes Service (AKS)](aks.md) - [Azure Load Balancing](azure-load-balancing.md) - [Azure Logic App](azure-logic-app.md) - [Azure No SQL](azure-nosql.md) - [Azure Messaging](messaging/messaging.md) - [Azure Event Grid](azure-event-grid.md) - [Azure Event Hub](azure-event-hub.md) - [Azure Queue](azure-queue.md) - [Azure Service Bus](azure-service-bus.md) - [Azure Resource Manager (ARM)](azure-resource-manager.md) - [Azure Sequrity](azure-security/azure-security.md) - [Azure Active Directory (Azure AD)](azure-active-directory.md) - [Azure Identity](azure-identity.md) - [Azure Key Vault](azure-key-vault.md) - [Azure SQL](azure-sql.md) - [Azure Storage](azure-storage.md) - [Azure Template](azure-template.md) ================================================ FILE: docs/azure/messaging/azure-event-grid.md ================================================ ## Azure Event Grid ## 📘 Resources - [Connect your services together](https://docs.microsoft.com/en-us/learn/paths/connect-your-services-together/) - [Architect message brokering and serverless applications in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-messaging-serverless/) - [React to state changes in your Azure services by using Event Grid](https://docs.microsoft.com/en-us/learn/modules/react-to-state-changes-using-event-grid/?ns-enrollment-type=LearningPath&ns-enrollment-id=learn.architect-messaging-serverless) ================================================ FILE: docs/azure/messaging/azure-event-hub.md ================================================ # Azure Event Hub ## 📘 Resources - [Connect your services together](https://docs.microsoft.com/en-us/learn/paths/connect-your-services-together/) - [Architect message brokering and serverless applications in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-messaging-serverless/) ## Articles - [Introducing Local Emulator for Azure Event Hubs](https://techcommunity.microsoft.com/t5/messaging-on-azure-blog/introducing-local-emulator-for-azure-event-hubs/ba-p/4146454) - [Overview of the Azure Event Hubs emulator](https://learn.microsoft.com/en-us/azure/event-hubs/overview-emulator) ## Libraries - [Azure/azure-event-hubs-emulator-installer](https://github.com/Azure/azure-event-hubs-emulator-installer) - This repository acts as a central hub for handling issues, collecting feedback, and facilitating discussions related to the Azure Event Hubs emulator. ## 🚀 Samples - [jeffhollan/container-apps-dotnet-eventing](https://github.com/jeffhollan/container-apps-dotnet-eventing) ================================================ FILE: docs/azure/messaging/azure-queue.md ================================================ ================================================ FILE: docs/azure/messaging/azure-service-bus.md ================================================ # Azure Service Bus ## 📘 Resources - [Connect your services together](https://docs.microsoft.com/en-us/learn/paths/connect-your-services-together/) - [AZURE SERVICE BUS .NET SDK DEEP DIVE – CONTENT](https://www.planetgeek.ch/2020/03/09/azure-service-bus-net-sdk-deep-dive-content/) ## 📕 Articles - [Service Bus queues, topics, and subscriptions](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-queues-topics-subscriptions) ⭐ - [Asynchronous messaging with Azure Service Bus](https://daniel-krzyczkowski.github.io/Asynchronous-Messaging-With-Azure-Service-Bus/) - [Local Development with Azure Service Bus](https://jimmybogard.com/local-development-with-azure-service-bus/) - [USING AZURE SERVICE BUS QUEUES WITH ASP.NET CORE SERVICES](https://damienbod.com/2019/04/23/using-azure-service-bus-queues-with-asp-net-core-services/) - [USING AZURE SERVICE BUS TOPICS IN ASP.NET CORE](https://damienbod.com/2019/04/24/using-azure-service-bus-topics-in-asp-net-core/) - [USING AZURE SERVICE BUS TOPICS SUBSCRIPTION FILTERS IN ASP.NET CORE](https://damienbod.com/2019/04/27/using-azure-service-bus-topics-subscription-filters-in-asp-net-core/) - [USING ENTITY FRAMEWORK CORE TO PROCESS AZURE SERVICE MESSAGES IN ASP.NET CORE](https://damienbod.com/2019/04/30/using-ef-core-to-process-azure-service-messages-in-asp-net-core/) - [Azure Service Bus and C# - an introduction](https://www.code4it.dev/blog/azure-service-bus-introduction) - [Azure Service Bus: Queues vs Topics](https://www.code4it.dev/blog/azure-service-bus-queue-vs-topic) - [Handling Azure Service Bus errors with .NET](https://www.code4it.dev/blog/azure-service-bus-errors) - [Replace RabbitMQ with Azure Service Bus Queues](https://www.programmingwithwolfgang.com/replace-rabbitmq-azure-service-bus-queue/) - [What is Azure Service Bus?](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview) - [Competing Consumers pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/competing-consumers) - [A world of messages with Azure](https://blexin.com/en/blog-en/a-world-of-messages-with-azure/) - [Robust Messaging using Azure Service Bus](https://techcommunity.microsoft.com/t5/apps-on-azure-blog/robust-messaging-using-azure-service-bus/ba-p/3275225) - [Local Development with Azure Service Bus](https://www.jimmybogard.com/local-development-with-azure-service-bus/) - [How to integrate Service Bus with RabbitMQ](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-integrate-with-rabbitmq) - [Advanced Message Queueing Protocol (AMQP) 1.0 support in Service Bus](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-amqp-overview) - [How to bridge RabbitMQ with Service Bus](https://dev.to/azure/how-to-bridge-rabbitmq-with-azure-service-bus-98l) - [How to use AMQP 1.0 with the Service Bus .NET API](https://github.com/toddkitta/azure-content/blob/master/articles/service-bus/service-bus-dotnet-advanced-message-queuing.md) - [Overview of the Azure Service Bus emulator](https://learn.microsoft.com/en-us/azure/service-bus-messaging/overview-emulator) ## 📺 Videos - [Asynchronous messaging with Azure Service Bus](https://www.youtube.com/watch?v=aJn5CDhWvJQ) - [On .NET Live - Messaging Patterns for .NET Developers](https://www.youtube.com/watch?v=ef1DK76rseM) - [What is Azure Service Bus? (and why you might need it) | Azure Tutorial](https://www.youtube.com/watch?v=HrK1UlPBkEY) - [Publishing and consuming messages in Azure Service Bus using .NET Core | Azure Tutorial](https://www.youtube.com/watch?v=gQ5P8WVpj30) - [How to use Azure Service Bus Topics | Azure Tips and Tricks](https://www.youtube.com/watch?v=kfjUSibSico) - [How to use Azure Service Bus Queues | Azure Tips and Tricks](https://www.youtube.com/watch?v=ZV4gjVVhee0) - [Intro to Azure Service Bus - The Power Behind Microservices](https://www.youtube.com/watch?v=v52yC9kq0Yg) - [Azure Service Bus - Implementation with Asp.Net Core 5 (Step by Step)](https://www.youtube.com/watch?v=bmZQkMJErZM) - [AZURE SERVICE BUS QUEUE - Getting Started | Azure Series](https://www.youtube.com/watch?v=sjgG3Q2GbeA) - [AZURE SERVICE BUS TOPICS & SUBSCRIPTIONS- Getting Started | Azure Series](https://www.youtube.com/watch?v=YFKrguSrOAM) ## Libraries - [Azure/azure-service-bus-emulator-installer](https://github.com/Azure/azure-service-bus-emulator-installer) - This repository acts as a central hub for handling issues, collecting feedback, and facilitating discussions related to the Azure Service Bus Emulator. ## 🚀 Samples - [Azure/azure-sdk-for-net/tree/main/sdk/servicebus/Azure.Messaging.ServiceBus/samples](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/servicebus/Azure.Messaging.ServiceBus/samples) - [Azure/azure-service-bus](https://github.com/Azure/azure-service-bus/tree/master/samples) - [damienbod/AspNetCoreServiceBus](https://github.com/damienbod/AspNetCoreServiceBus) - [WolfgangOfner/MicroserviceDemo](https://github.com/WolfgangOfner/MicroserviceDemo) - [jeffhollan/container-apps-dotnet-eventing](https://github.com/jeffhollan/container-apps-dotnet-eventing) - [monojit18/AzIntegrationServices](https://github.com/monojit18/AzIntegrationServices) ================================================ FILE: docs/azure/messaging/azure-web-pub-sub.md ================================================ # Azure Web Pub/Sub ## 📺 Videos - [An overview of Azure Web PubSub](https://channel9.msdn.com/Shows/Azure-Friday/An-overview-of-Azure-Web-PubSub) ================================================ FILE: docs/azure/messaging/messaging.md ================================================ # Azure Messaging ## 📘 Resources - [Architect message brokering and serverless applications in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-messaging-serverless/) - [Connect your services together](https://docs.microsoft.com/en-us/learn/paths/connect-your-services-together/) ================================================ FILE: docs/azure/nosql/azure-nosql.md ================================================ # Azure NoSQL ## 📘 Resources - [Work with NoSQL data in Azure Cosmos DB](https://docs.microsoft.com/en-us/learn/paths/work-with-nosql-data-in-azure-cosmos-db/) - [Architect a data platform in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-data-platform/) - [Migrating Cassandra and MongoDB workloads to Cosmos DB](https://docs.microsoft.com/en-us/learn/paths/migrate-cassandra-mongo-db-workloads-to-cosmos-db/) ================================================ FILE: docs/azure/nosql/cosmosdb.md ================================================ # CosmosDB ## 📘 Resources - [Azure Cosmos DB YouTube](https://www.youtube.com/c/AzureCosmosDB) ## 📕 Articles - [Azure Cosmos DB vs Azure Table Storage – Choosing the right store for your application](https://venkateshnarayanan.wordpress.com/2019/08/08/azure-cosmos-db-vs-azure-table-storage-choosing-the-right-store-for-your-application/) ## 📺 Videos - [Storing and managing entities with Azure Cosmos DB | ASP.NET Core 5 REST API Tutorial 8.5](https://www.youtube.com/watch?v=bBSQgX0mZ5E) - [Entity Framework Community Standup - Azure Cosmos DB and EF Core](https://www.youtube.com/watch?v=nEqH_XfCfho) - [From SQL to Azure Cosmos DB - Jimmy Bogard](https://www.youtube.com/watch?v=II9FuVkMBXQ) - [Azure Cosmos DB Tutorial | Globally distributed NoSQL database](https://www.youtube.com/watch?v=R_Fi59j6BMo) - [Azure Cosmos DB - Partitioning](https://www.youtube.com/watch?v=SS6WrQ-HJ30) - [Learning Azure Cosmos DB](https://app.pluralsight.com/library/courses/azure-cosmos-db/table-of-contents) ## 🚀 Samples - [ShawnShiSS/clean-architecture-azure-cosmos-db](https://github.com/ShawnShiSS/clean-architecture-azure-cosmos-db) - A starting point to build a web API to work with Azure Cosmos DB using .NET 5 and Azure Cosmos DB .NET SDK V3, based on Clean Architecture and repository design pattern. Partition key is also implemented through the repository pattern. ================================================ FILE: docs/azure/service-fabric.md ================================================ # Azure Service Fabric ================================================ FILE: docs/azure/storage/blob.md ================================================ # Azure Blob Storage ## 📺 Videos - [Azure Files vs Azure Blob Storage - Which Storage Type Do You Need?](https://www.youtube.com/watch?v=QpG3o9cOF10) - [AZ-900 Episode 11 | Azure Storage Services | Blob, Queue, Table, Files, Disk and Storage Tiers](https://www.youtube.com/watch?v=_Qlkvd4ZQuo) - [Azure Storage Tutorial | Introduction to Blob, Queue, Table & File Share](https://www.youtube.com/watch?v=UzTtastcBsk) ================================================ FILE: docs/azure/storage/file.md ================================================ # Azure File Storage ## 📺 Videos - [Azure Files vs Azure Blob Storage - Which Storage Type Do You Need?](https://www.youtube.com/watch?v=QpG3o9cOF10) - [AZ-900 Episode 11 | Azure Storage Services | Blob, Queue, Table, Files, Disk and Storage Tiers](https://www.youtube.com/watch?v=_Qlkvd4ZQuo) - [Azure Storage Tutorial | Introduction to Blob, Queue, Table & File Share](https://www.youtube.com/watch?v=UzTtastcBsk) ================================================ FILE: docs/azure/storage/queue.md ================================================ # Azure Queue Storage ## 📺 Videos - [AZURE QUEUE STORAGE From ASP NET Core | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=5oTX6srQdOE) - [Azure Queue Storage Tutorial](https://www.youtube.com/watch?v=JQ6KhjU5Zsg) - [AZ-900 Episode 11 | Azure Storage Services | Blob, Queue, Table, Files, Disk and Storage Tiers](https://www.youtube.com/watch?v=_Qlkvd4ZQuo) - [Azure Storage Tutorial | Introduction to Blob, Queue, Table & File Share](https://www.youtube.com/watch?v=UzTtastcBsk) ================================================ FILE: docs/azure/storage/storage.md ================================================ # Azure Storage ## 📘 Resources - [Store data in Azure](https://docs.microsoft.com/en-us/learn/paths/store-data-in-azure/) - [Architect storage infrastructure in Azure](https://docs.microsoft.com/en-us/learn/paths/architect-storage-infrastructure/) - [AZ-104: Implement and manage storage in Azure](https://docs.microsoft.com/en-us/learn/paths/az-104-manage-storage/) - [Implement and manage storage for Azure administrators](https://docs.microsoft.com/en-us/learn/paths/azure-administrator-manage-storage/) - [Work with NoSQL data in Azure Cosmos DB](https://docs.microsoft.com/en-us/learn/paths/work-with-nosql-data-in-azure-cosmos-db/) ## 📕 Articles - [How to deploy a NuGet package + Run tests against Azurite in Local & DevOps environments Part 1/2](https://www.ledjonbehluli.com/posts/azurite_nuget_and_env_part_1/) - [How to deploy a NuGet package + Run tests against Azurite in Local & DevOps environments Part 2/2](https://www.ledjonbehluli.com/posts/azurite_nuget_and_env_part_2/) ## 📺 Videos - [Azure Storage Service with .Net 5 - Step by Step](https://www.youtube.com/watch?v=B_yDG35lb5I) ## 📦 Libraries - [Azure/Azurite](https://github.com/Azure/Azurite) - A lightweight server clone of Azure Storage that simulates most of the commands supported by it with minimal dependencies ## 🚀 Samples - [ledjon-behluli/AzuriteNugetDevOps_POC](https://github.com/ledjon-behluli/AzuriteNugetDevOps_POC) - Simple POC for creating and publishing a NuGet package to Azure DevOps, with built in unit tests against the cross-platform azure storage emulator (Azurite) running in a docker container. ================================================ FILE: docs/azure/storage/table.md ================================================ # Azure Table Storage ## 📕Articles - [Azure Cosmos DB vs Azure Table Storage – Choosing the right store for your application](https://venkateshnarayanan.wordpress.com/2019/08/08/azure-cosmos-db-vs-azure-table-storage-choosing-the-right-store-for-your-application/) - [Azure Table Storage Tutorial | Easy and scalable NoSQL database](https://www.youtube.com/watch?v=HSL1poL1VR0) - [AZ-900 Episode 11 | Azure Storage Services | Blob, Queue, Table, Files, Disk and Storage Tiers](https://www.youtube.com/watch?v=_Qlkvd4ZQuo) - [Azure Storage Tutorial | Introduction to Blob, Queue, Table & File Share](https://www.youtube.com/watch?v=UzTtastcBsk) - [Introduction to Azure Table Storage](https://harshmatharu.com/blog/introduction-to-azure-table-storage) ================================================ FILE: docs/back-pressure.md ================================================ # Back Pressure ## 📕 Articles - [Applying Back Pressure When Overloaded](https://mechanical-sympathy.blogspot.com/2012/05/apply-back-pressure-when-overloaded.html) - [Avoiding a QUEUE Backlog Disaster with Backpressure & Flow Control](https://codeopinion.com/avoiding-a-queue-backlog-disaster-with-backpressure-flow-control/) - [Backpressure explained — the resisted flow of data through software](https://medium.com/@jayphelps/backpressure-explained-the-flow-of-data-through-software-2350b3e77ce7) - [How to Relieve Backpressure In Message-Based Systems](https://clearmeasure.com/backpressure-in-message-based-systems - [Mechanical Sympathy](https://mechanical-sympathy.blogspot.com/2012/05/apply-back-pressure-when-overloaded.html) - [Back pressure](https://github.com/donnemartin/system-design-primer#back-pressure) ## 📺 Videos - [ReactiveConf 2019 - Jay Phelps: Backpressure: Resistance is NOT Futile](https://www.youtube.com/watch?v=I6eZ4ZyI1Zg) - [https://www.youtube.com/watch?v=oS9w3VenDW0](https://www.youtube.com/watch?v=oS9w3VenDW0) - [Jay Phelps - Backpressure? Resistance is not futile. - Uphill Conf 2019](https://www.youtube.com/watch?v=NNGgMqpYPjk) - [Lessons Learned From PayPal: Back Pressure With Akka Streams And Kafka](https://www.youtube.com/watch?v=15jAG6-T_KE) - [Back Pressure in Action](https://www.youtube.com/watch?v=dsuvnoEezxs) - [Avoiding a QUEUE Backlog Disaster with Backpressure & Flow Control](https://www.youtube.com/watch?v=BIGiLJJlE08) - [It's all a Numbers Game - the Dirty Little Secret of Scalable Systems • Martin Thompson • GOTO 2012](https://www.youtube.com/watch?v=1KRYH75wgy4) - [Backpressure Explained - Akka .NET](https://www.youtube.com/watch?v=0KYoIvrM9VY) ================================================ FILE: docs/caching.md ================================================ # Caching ## 📘 Resources - [donnemartin/system-design-primer#cache](https://github.com/donnemartin/system-design-primer#cache) - [Redis Youtube](https://www.youtube.com/c/Redisinc/) ## 📕 Articles - [Top 5 Caching Patterns](https://newsletter.systemdesign.one/p/caching-patterns) - [Caching Best Practices](https://docs.microsoft.com/en-us/azure/architecture/best-practices/caching) - [Where Is My Cache? Architectural Patterns for Caching Microservices](https://hazelcast.com/blog/architectural-patterns-for-caching-microservices/) - [4 ways to update your cache](https://vishnu.hashnode.dev/4-ways-to-update-your-cache-ckn4c0jae0dq8efs152eu8hmq) - [Simple In-Memory Caching in .Net Core with IMemoryCache](https://sahansera.dev/in-memory-caching-aspcore-dotnet/) - [4 Microservices Caching Patterns at Wix](https://medium.com/wix-engineering/4-microservices-caching-patterns-at-wix-b4dfee1ae22f) - [REDIS VS MEMCACHED: WHICH ONE TO CHOOSE?](https://www.imaginarycloud.com/blog/redis-vs-memcached) - [Redis vs. Memcached: In-Memory Data Storage Systems](https://alibaba-cloud.medium.com/redis-vs-memcached-in-memory-data-storage-systems-3395279b0941) - [Difference Between Redis vs Memcached](https://www.educba.com/redis-vs-memcached/) - [How to Improve ASP.NET App Performance in Web Farm with Caching](https://www.toptal.com/dot-net/caching-in-a-distributed-web-farm-using-asp-net) - [Redis as Backplane to scale your Blazor applications](https://blexin.com/en/blog-en/redis-as-backplane-to-scale-your-blazor-applications/) - [“Red(e)isign” Publish/Subscribe with Redis](https://blexin.com/en/blog-en/redeisign-publish-subscribe-with-redis/) - [Hybrid Caching](https://github.com/dotnetcore/EasyCaching/blob/master/docs/Hybrid.md) - [Horizontal scaling in/out techniques for redis cluster](https://iamvishalkhare.medium.com/horizontal-scaling-in-out-techniques-for-redis-cluster-dcd75c696c86) - [Creating a Redis Cluster](https://iamvishalkhare.medium.com/create-a-redis-cluster-faa89c5a6bb4) - [Introduction to architecting systems for scale.](https://lethain.com/introduction-to-architecting-systems-for-scale/) - [Scalability, Availability & Stability Patterns](https://slideshare.net/jboner/scalability-availability-stability-patterns/) - [Scalability for Dummies - Part 3: Cache](https://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache) - [What is Caching ?](https://medium.com/system-design-blog/what-is-caching-1492abb92143) - [How to Cache Aggregated Data with Redis and Lua Scripts for a Scaled Microservice Architecture](https://itnext.io/how-to-cache-aggregated-data-with-redis-and-lua-scripts-for-a-scaled-microservice-architecture-2b791289e911) - [Distributed Caching in ASP.NET Core using Redis Cache](https://www.ezzylearning.net/tutorial/distributed-caching-in-asp-net-core-using-redis-cache) - [How to publish and subscribe with redis by. Net core](https://developpaper.com/how-to-publish-and-subscribe-with-redis-by-net-core/) - [Publish Subscribe](https://sodocumentation.net/stackexchange-redis/topic/1610/publish-subscribe) - [Pub/Sub](https://redis.io/topics/pubsub) - [Scaling our inventory cache reads to 1000X](https://medium.com/myntra-engineering/scaling-our-inventory-cache-reads-to-1000x-84a8be1f576e) - [Bulk loading - Writing data in bulk using the Redis protocol](https://redis.io/docs/reference/patterns/bulk-loading/) - [Redis Explained - Architecture Notes](https://architecturenotes.co/redis/) - [Cache me if you can: A Look at Common Caching Strategies, and how CQRS can Replace the Need in the First Place](https://medium.com/ssense-tech/cache-me-if-you-can-a-look-at-common-caching-strategies-and-how-cqrs-can-replace-the-need-in-the-65ec2b76e9e) ⭐ - [Caching Strategies and How to Choose the Right One](https://codeahoy.com/2017/08/11/caching-strategies-and-how-to-choose-the-right-one/) ⭐ - [3 crucial caching choices: Where, when, and how](https://www.gomomento.com/blog/6-common-caching-design-patterns-to-execute-your-caching-strategy) ⭐ - [6 common caching design patterns to execute your caching strategy](https://www.gomomento.com/blog/6-common-caching-design-patterns-to-execute-your-caching-strategy) ⭐ - [Redis Pub/Sub](https://redis.io/docs/interact/pubsub/) - [Redis data types](https://redis.io/docs/data-types/) - [Improvements to the Caching Abstraction in ASP.NET Core](https://devblogs.microsoft.com/dotnet/caching-abstraction-improvements-in-aspnetcore/) - [Distributed Locks with Redis](https://redis.io/docs/manual/patterns/distributed-locks/) - [Redis as a Database](https://medium.com/wix-engineering/redis-as-a-database-f9df579b09c0) - [MongoDB vs. Redis: Which Database Should You Use?](https://www.integrate.io/blog/mongodb-vs-redis/) - [MongoDB vs. Redis Comparison](https://www.mongodb.com/compare/mongodb-vs-redis) - [Redis Anti-Patterns Every Developer Should Avoid](https://redis.io/learn/howtos/antipatterns) ## 📺 Videos - [Real-Time Delivery Architecture at Twitter](https://www.infoq.com/presentations/Real-Time-Delivery-Twitter/) - [Software Architecture Introduction (part 3): Cache explained](https://www.youtube.com/watch?v=QBMTGngjWdU) - [Scaling Redis PubSub with Shahar Mor - Redis Labs](https://www.youtube.com/watch?v=6G22a5Iooqk) - [Redis is Dead Long live Redis!](https://www.youtube.com/watch?v=NymIgA7Wa78) - [Scaling Your Redis Workloads with Redis Cluster - AWS Online Tech Talks](https://www.youtube.com/watch?v=3Ovx5vJ17ws) - [Scaling Redis To 1M Ops/Sec](https://www.youtube.com/watch?v=55TFuBMFWns) - [Redis In-memory Database Crash Course](https://www.youtube.com/watch?v=sVCZo5B8ghE) - [Redis Crash Course - the What, Why and How to use Redis as your primary database](https://www.youtube.com/watch?v=OqCK95AS-YE) - [Can Redis be used as a Primary database?](https://www.youtube.com/watch?v=VLTPqImLapM) - [Caching Architectures | Microservices Caching Patterns | System Design Primer | Tech Primers](https://www.youtube.com/watch?v=0x-ZV_vP73k) - [Redis Crash Course](https://www.youtube.com/watch?v=jgpVdJB2sKQ) - [Redis Stack: The Complete Redis for All Developers](https://www.youtube.com/watch?v=9JeAu--liMk) - [Redis for .NET Developers](https://university.redis.com/courses/ru102n/) ⭐ - [How to build a real-time leaderboard for the Soccer World Cup with Azure SQL and Redis | Data Exposed](https://learn.microsoft.com/en-us/shows/data-exposed/how-to-build-a-real-time-leaderboard-for-the-soccer-world-cup-with-azure-sql-and-redis-data-exposed) - [Write-behind and read-through with RedisGears, Redis Labs](https://www.youtube.com/watch?v=J3eCZJGVze4) - [Redis and MongoDB: Write-Behind Pattern](https://www.youtube.com/watch?v=zLlPLl3MXEQ) - [How to make your DB fast by using Caching](https://www.youtube.com/watch?v=_JGgGR3Rp60) ## Use Cases - [Case Studies](https://redislabs.com/case-studies/) - [5 Industry Use Cases for Redis Developers](https://redislabs.com/blog/5-industry-use-cases-for-redis-developers/) - [Messaging](https://redislabs.com/solutions/use-cases/messaging/) - [Real-Time Inventory Management](https://redislabs.com/solutions/use-cases/real-time-inventory/) - [Caching](https://redislabs.com/solutions/use-cases/caching/) - [Leaderboards](https://redislabs.com/solutions/use-cases/leaderboards/) - [Freshworks CASE STUDY](https://redislabs.com/case-studies/freshworks/) ## 🚀 Samples - [dotnet-school/dotnet-redis](https://github.com/dotnet-school/dotnet-redis) ⭐ - [taswar/RedisForNetDevelopers](https://github.com/taswar/RedisForNetDevelopers) - Source code for blog post on Redis for .NET Developer Series - [Redislabs-Solution-Architects/acre-sql-demo](https://github.com/Redislabs-Solution-Architects/acre-sql-demo) ⭐ - [redis-developer/basic-redis-chat-app-demo-dotnet](https://github.com/redis-developer/basic-redis-chat-app-demo-dotnet) ⭐ ## Library - [StackExchange/StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis) - General purpose redis client - [ServiceStack/ServiceStack.Redis](https://github.com/ServiceStack/ServiceStack.Redis) - .NET's leading C# Redis Client - [Foundatio.Redis](https://github.com/FoundatioFx/Foundatio.Redis) - Foundatio Redis - [MichaCo/CacheManager](https://github.com/MichaCo/CacheManager) - CacheManager is an open source caching abstraction layer for .NET written in C#. It supports various cache providers and implements many advanced features. - [dotnetcore/EasyCaching](https://github.com/dotnetcore/EasyCaching) - EasyCaching is an open source caching library that contains basic usages and some advanced usages of caching which can help us to handle caching more easier! - [mjebrahimi/EasyCompressor](https://github.com/mjebrahimi/EasyCompressor) - ⚡ A compression library that implements many compression algorithms such as LZ4, Zstd, LZMA, Snappy, Brotli, GZip, and Deflate. It helps you to improve performance by reducing Memory Usage and Network Traffic for caching. - [VahidN/EFCoreSecondLevelCacheInterceptor](https://github.com/VahidN/EFCoreSecondLevelCacheInterceptor) - EF Core Second Level Cache Interceptor - [marcoCasamento/Hangfire.Redis.StackExchange](https://github.com/marcoCasamento/Hangfire.Redis.StackExchange) - HangFire Redis storage based on original (and now unsupported) Hangfire.Redis but using lovely StackExchange.Redis client - [ZiggyCreatures.FusionCache](https://github.com/jodydonetti/ZiggyCreatures.FusionCache) - FusionCache is an easy to use, high performance and robust cache with an optional distributed 2nd layer and some advanced features. - [olsh/stack-exchange-redis-analyzer](https://github.com/olsh/stack-exchange-redis-analyzer) - Roslyn-based analyzer for StackExchange.Redis library ================================================ FILE: docs/clean-architecture.md ================================================ # Clean Architecture ## 📕 Articles - [Clean architecture](https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures#clean-architecture) - [Layers in DDD microservices](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice#layers-in-ddd-microservices) - [Clean architecture](https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures#clean-architecture) - [The Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) - [Clean Architecture: Standing on the shoulders of giants](https://herbertograca.com/2017/09/28/clean-architecture-standing-on-the-shoulders-of-giants/) - [DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together](https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/) - [Reflecting architecture and domain in code](https://herbertograca.com/2019/06/05/reflecting-architecture-and-domain-in-code/) - [More than concentric layers](https://herbertograca.com/2018/07/07/more-than-concentric-layers/) - [A Brief Intro to Clean Architecture, Clean DDD, and CQRS](https://blog.jacobsdata.com/2020/02/19/a-brief-intro-to-clean-architecture-clean-ddd-and-cqrs) ⭐ - [A Template for Clean Domain-Driven Design Architecture](https://blog.jacobsdata.com/2020/03/02/a-clean-domain-driven-design-architectural-template) ⭐ - [CQRS Translated to Clean Architecture](https://blog.fals.io/2018-09-19-cqrs-clean-architecture/) - [A Brief Intro to Clean Architecture, Clean DDD, and CQRS](https://blog.jacobsdata.com/2020/02/19/a-brief-intro-to-clean-architecture-clean-ddd-and-cqrs) - [Clean Architecture with .NET Core: Getting Started](https://jasontaylor.dev/clean-architecture-getting-started/) - [Clean architecture series — Part 3](https://dev.to/pereiren/clean-architecture-series-part-3-2795) - [Asp.net core series 63 domain model architecture eShopOnWeb project analysis](https://www.itworkman.com/89255.html) - [Analysis of Equinox open source project under asp.net core series 62 CQRS architecture](https://www.cnblogs.com/MrHSR/p/10820545.html) - [Equinox open source projects analyzed under the framework CQRS](https://www.programmersought.com/article/81052035363/) - [Comprehensive understanding of domain model architecture combined with eShopOnWeb](https://www.programmersought.com/article/97275046219/) - [Clean Architecture - An Introduction](https://www.dandoescode.com/blog/clean-architecture-an-introduction/) - [Building ASP.NET Core Web APIs with Clean Architecture](https://fullstackmark.com/post/18/building-aspnet-core-web-apis-with-clean-architecture) - [Clean Architecture for .NET Applications](https://paulovich.net/clean-architecture-for-net-applications/) - [Hexagonal and Clean Architecture Styles with .NET Core (Reviewed)](https://paulovich.net/hexagonal-and-clean-architecture-styles-with-net-core-reviewed/) - [ASP.NET Core WebAPI – Clean Architecture](https://codewithmukesh.com/project/aspnet-core-webapi-clean-architecture%e2%80%8b/) - [Getting Started with Clean Architecture using ASP.NET Core – 01](https://www.gokhan-gokalp.com/en/getting-started-with-clean-architecture-using-asp-net-core-01/) - [Component Based Architecture](https://medium.com/omarelgabrys-blog/component-based-architecture-3c3c23c7e348) - [Multiple ways of defining Clean Architecture layers](https://proandroiddev.com/multiple-ways-of-defining-clean-architecture-layers-bbb70afa5d4a) - [Adoption of Clean Architecture layers with modules](https://medium.com/@anil.gudigar/adoption-of-clean-architecture-layers-with-modules-a0b5b9b4e716) - [Clean Architecture : Part 2 – The Clean Architecture](https://crosp.net/blog/software-architecture/clean-architecture-part-2-the-clean-architecture/) - [Clean Architecture for ASP.NET Core Solution: A Case Study](https://blog.ndepend.com/clean-architecture-for-asp-net-core-solution/) ⭐ - [How to implement the Clean Architecture?](http://www.plainionist.net/Implementing-Clean-Architecture/) - [Implementing Clean Architecture - What is a use case?](http://www.plainionist.net/Implementing-Clean-Architecture-UseCases/) - [Implementing Clean Architecture - Make it scream](http://www.plainionist.net/Implementing-Clean-Architecture-Scream/) - [Clean Architecture with Xamarin Forms](https://fullstackmark.com/post/26/clean-architecture-with-xamarin-forms) - [Better Software Design with Clean Architecture](https://fullstackmark.com/post/11/better-software-design-with-clean-architecture) - [Clean API Architecture](https://medium.com/perry-street-software-engineering/clean-api-architecture-2b57074084d5) - [How to make Dapr client works well with Refit and RestEase in 5 minutes](https://dev.to/thangchung/how-to-make-dapr-client-works-well-with-refit-and-restease-40m) - [Organizing App Logic with the Clean Architecture [with Examples]](https://khalilstemmler.com/articles/software-design-architecture/organizing-app-logic/) - [Combining DDD, CQRS, and Clean Architecture by refactoring a Go project](https://threedots.tech/post/ddd-cqrs-clean-architecture-combined/) - [Introducing Clean Architecture by refactoring a Go project](https://threedots.tech/post/introducing-clean-architecture/) - [Clean Event-Driven Architecture](https://valerii-udodov.com/posts/event-sourcing/clean-event-driven-architecture/) - [A quick introduction to clean architecture](https://www.freecodecamp.org/news/a-quick-introduction-to-clean-architecture-990c014448d2/) - [Clean Architecture Example & Breakdown](https://codeopinion.com/clean-architecture-example-breakdown/) - [Clean Architecture with ASP.NET Core](https://ardalis.com/clean-architecture-asp-net-core/) - [Clean Architecture — ASP.NET Core API using Partitioned Repository Pattern with Azure Cosmos DB](https://medium.com/swlh/clean-architecture-with-partitioned-repository-pattern-using-azure-cosmos-db-62241854cbc5) - [Onion Architecture in ASP.NET Core](https://code-maze.com/onion-architecture-in-aspnetcore/) - [Implementing Clean Architecture in ASP.NET Application](https://harshmatharu.com/blog/clean-architecture-in-aspnet) - [Clean Architecture in .NET - code-maze.com](https://code-maze.com/dotnet-clean-architecture/) ⭐ ## 📺 Videos - [Clean Testing - Clean Architecture with .NET Core - Jason Taylor - NDC Oslo 2020](https://www.youtube.com/watch?v=T6NRcX1vnz8) - [Clean Architecture with ASP.NET Core 3.0 - Jason Taylor](https://www.youtube.com/watch?v=5OtUm1BLmG0) - [Clean Architecture with ASP.NET Core 2.1](https://www.youtube.com/watch?v=_lwCVE_XgqI&feature=youtu.be) - [Clean Architecture with ASP.NET Core with Steve "Ardalis" Smith (2020-06-01)](https://www.youtube.com/watch?v=joNTQy-KXiU) - [Clean Architecture Example & Breakdown - Do I use it?](https://www.youtube.com/watch?v=Ys_W6MyWOCw) - [SLC.NET Presents: Steve Smith (@Ardalis) - Clean Architecture with ASP.NET Core](https://www.youtube.com/watch?v=tYoqmL6e4oY) - [Tour of Microsoft's Reference ASP NET Core App eShopOnWeb](https://www.youtube.com/watch?v=rSpF1s8wcyA) - [An Overview of eShopOnWeb, an ASP.NET Core Reference Application](https://www.youtube.com/watch?v=vRZ8ucGac8M&ab_channel=Ardalis) - [Clean Architecture S02](https://www.youtube.com/playlist?list=PLY9iz4il6pyO46KZN-xQtZZMtdpBO9AoR) - [Robert C Martin - Clean Architecture](https://www.youtube.com/watch?v=Nltqi7ODZTM&feature=youtu.be) - [Gill CLEEREN: Clean architecture with ASP.NET Core | UCP2019](https://www.youtube.com/watch?v=BxtHt7tsX-c&t=2582s) - [Adding Aggregate Example to Clean Architecture solution template](https://www.youtube.com/watch?v=kxuGtgOimGA) - [Adding Aggregate Example to Clean Architecture solution template](https://www.youtube.com/watch?v=dkj-WwxrgyI) - [How Do You Structure Your Go Apps? by Kat Zień. GoWayFest 2018 Minsk](https://www.youtube.com/watch?v=Qtk9FFOoT5M) - [On .NET Live - Commands, Queries, and Clean Architecture](https://www.youtube.com/watch?v=IRvDGPbxdTs) - [Clean Architecture and Brighter with Ian Cooper](https://www.youtube.com/watch?v=dlhvBR4gd04) - [DevTernity 2019: Ian Cooper – The Clean Architecture](https://www.youtube.com/watch?v=SxJPQ5qXisw) - [How to structure a .NET Solution (project separation & architecture)](https://www.youtube.com/watch?v=YiVqwoFMieg) - [Clean Architecture with ASP.NET Core by Steve Smith | BRDNUG June 2021](https://www.youtube.com/watch?v=D6IEnMTuawA) - [Fat Controller CQRS Diet Talk](https://www.youtube.com/watch?v=icyvKTuZkzE) - [Mini Course #1 Clean Architecture + CQRS](https://www.youtube.com/watch?v=NzcZcim9tp8) - [Clean Architecture with ASP.NET Core 6](https://www.youtube.com/watch?v=lkmvnjypENw) - [Why is Clean Architecture so Popular?](https://www.youtube.com/watch?v=g0XmFpmvsDk) ## 🚀 Samples - [Sairyss/domain-driven-hexagon](https://github.com/Sairyss/domain-driven-hexagon) - Guide on Domain-Driven Design, Hexagonal architecture, best practices etc. - [acobsDataSolutions/OrgManager](https://github.com/JacobsDataSolutions/OrgManager) - CQRS and Clean Domain-Driven Design concepts on the ASP.NET Core stack. Demo application for a fictional corporate organization management tool. - [jasontaylordev/CleanArchitecture](https://github.com/jasontaylordev/CleanArchitecture) - Clean Architecture Solution Template for Angular 10 and .NET 5 - [EduardoPires/EquinoxProject](https://github.com/EduardoPires/EquinoxProject) - Full ASP.NET Core 3.1 application with DDD, CQRS and Event Sourcing concepts - [ardalis/cleanarchitecture](https://github.com/ardalis/cleanarchitecture) - A starting point for Clean Architecture with ASP.NET Core - [pereiren/dotnet-template-onion](https://github.com/pereiren/dotnet-template-onion) - Onion Architecture with .NET 5/.NET Core and CQRS/Event Sourcing following a DDD approach - [NNVTV/NetCore-Clean-Architecture](https://github.com/INNVTV/NetCore-Clean-Architecture) - .Net Core starter project for clean architecture showcasing use of the CQRS pattern, MediatR and custom Middleware for cross-cutting concerns, micro-service communications with REST/OpenAPI, Swagger, Webhooks and gRPC endpoints, CosmosDB for data and Serilog for logging. - [pdevito3/craftsman](https://github.com/pdevito3/craftsman) - Craftsman is the workhorse behind the Wrapt framework and provides a suite of CLI commands for quickly scaffolding out new files and projects for your .NET Web APIs with simple CLI commands and configuration files. - [gothinkster/aspnetcore-realworld-example-app](https://github.com/gothinkster/aspnetcore-realworld-example-app) - ASP.NET Core backend implementation for RealWorld - [dotnet-architecture/eShopOnWeb](https://github.com/dotnet-architecture/eShopOnWeb) - Sample ASP.NET Core 5.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder. - [matthewrenze/clean-architecture-demo](https://github.com/matthewrenze/clean-architecture-demo) - A sample app for my presentation on Clean Architecture: Patterns, Practices, and Principles - [jasontaylordev/NorthwindTraders](https://github.com/jasontaylordev/NorthwindTraders) - Northwind Traders is a sample application built using ASP.NET Core and Entity Framework Core. - [hgraca/explicit-architecture-php](https://github.com/hgraca/explicit-architecture-php) - This repository is a demo of Explicit Architecture, using the Symfony Demo Application. - [mmacneil/CleanAspNetCoreWebApi](https://github.com/mmacneil/CleanAspNetCoreWebApi) - Starter project for creating APIs built on ASP.NET Core using clean architecture. - [ivanpaulovich/clean-architecture-manga](https://github.com/ivanpaulovich/clean-architecture-manga) - Clean Architecture with .NET5, C#9 and React+Redux. Use cases as central organizing structure, completely testable, decoupled from frameworks - [Daniel-Krzyczkowski/CleanArchitectureWithDevSecOps](https://github.com/Daniel-Krzyczkowski/CleanArchitectureWithDevSecOps) - This repository contains code samples related with clean software architecture and DevSecOps. - [aspnetcorehero/Boilerplate](https://github.com/aspnetcorehero/Boilerplate) - Clean Architecture Solution Template for ASP.NET Core 5.0. Built with Onion/Hexagonal Architecture and incorporates the most essential Packages your projects will ever need. Includes both WebApi and Web(MVC) Projects. - [fals/cqrs-clean-eventual-consistency](https://github.com/fals/cqrs-clean-eventual-consistency) - CQRS, using Clean Architecture, multiple databases and Eventual Consistency - [rafaelfgx/Architecture](https://github.com/rafaelfgx/Architecture) - Architecture .NET 5, ASP.NET Core 5, Entity Framework Core 5, C# 9, Angular 11, Clean Code, SOLID, DDD. - [kgrzybek/sample-dotnet-core-cqrs-api](https://github.com/kgrzybek/sample-dotnet-core-cqrs-api) - Sample .NET Core REST API CQRS implementation with raw SQL and DDD using Clean Architecture. - [phongnguyend/Practical.CleanArchitecture](https://github.com/phongnguyend/Practical.CleanArchitecture) - Asp.Net Core 5 Clean Architecture (Microservices, Modular Monolith, Monolith) samples (+Blazor, Angular 11, React 17, Vue 2.6), Domain-Driven Design, CQRS, Event Sourcing, SOLID, Asp.Net Core Identity Custom Storage, Identity Server 4 Admin UI, Entity Framework Core, Selenium E2E Testing, SignalR Notification, Hangfire Tasks Scheduling - [aspnetrun/run-aspnetcore](https://github.com/aspnetrun/run-aspnetcore) - A starter kit for your next ASP.NET Core web application. Boilerplate for ASP.NET Core reference application, demonstrating a layered application architecture with applying Clean Architecture and DDD - [aspnetrun/run-aspnetcore-cqrs](https://github.com/aspnetrun/run-aspnetcore-cqrs) - Real world Enterprise CRM application example of ASP.NET Core + Angular web application. Implemented CQRS Design Pattern for ASP.NET Core + Angular reference application, demonstrating a layered application architecture with DDD - [aspnetrun/run-aspnetcore-realworld](https://github.com/aspnetrun/run-aspnetcore-realworld) - E-Commerce real world example of run-aspnetcore ASP.NET Core web application. Implemented e-commerce domain with clean architecture for ASP.NET Core reference application, demonstrating a layered application architecture with DDD best practices. - [jacobduijzer/CleanArchitectureTemplate](https://github.com/jacobduijzer/CleanArchitectureTemplate) - A template for a dotnet core api / mvc "clean architecture" project. - [CanerPatir/aspnet-core-clean-arch](https://github.com/CanerPatir/aspnet-core-clean-arch) - It is a clean architecture project template which is based on hexagonal-architecture principles built with .Net core. - [techtribesje/techtribesje](https://github.com/techtribesje/techtribesje) - [thombergs/buckpal](https://github.com/thombergs/buckpal) - An example approach for implementing a Clean/Hexagonal Architecture - [proudmonkey/ApiBoilerPlate](https://github.com/proudmonkey/ApiBoilerPlate) - A simple yet organized project template for building ASP.NET Core APIs in .NET Core 3.1 - [blazorhero/CleanArchitecture](https://github.com/blazorhero/CleanArchitecture) - Clean Architecture Template for Blazor WebAssembly Built with MudBlazor Components. - [iammukeshm/CleanArchitecture.WebApi](https://github.com/iammukeshm/CleanArchitecture.WebApi) - An implementation of Clean Architecture for ASP.NET Core 3.1 WebAPI. Built with loosely coupled architecture and clean-code practices in mind. - [Reddnet](https://github.com/moritz-mm/Reddnet) - A mini Reddit written in ASP.NET Core 5.0 - [DevBetterCom/DevBetterWeb](https://github.com/DevBetterCom/DevBetterWeb) - A simple web application for devBetter - [katzien/go-structure-examples](https://github.com/katzien/go-structure-examples) - Examples for my talk on structuring go apps - [Amitpnk/Clean-Architecture-ASP.NET-Core](https://github.com/Amitpnk/Clean-Architecture-ASP.NET-Core) - Complete solution template which is built on Clean Architecture with all essential feature, CI/CD, best practice, testing Strategy using the testing pyramid and documentation using .NET 5! - [baratgabor/MyWarehouse](https://github.com/baratgabor/MyWarehouse) - Clean Architecture and Domain Driven Design sample project based on C# 9 / .NET 5 / ASP.NET Core 5 / EF Core 5 & Angular 11 with Bootstrap. - [roblaszczak/go-cleanarch](https://github.com/roblaszczak/go-cleanarch) - Clean architecture validator for go, like a The Dependency Rule and interaction between packages in your Go projects. - [thangchung/clean-architecture-dotnet](https://github.com/thangchung/clean-architecture-dotnet) - Dev: Apply Minimal Clean Architecture with DDD-lite, CQRS-lite, and just enough Cloud-native patterns on eCommerce sample business domain. 🍻 Ops: Use Tye with Dapr extension to deploy it to Kubernetes. - [fakhrulhilal/cleanarchitecture-kit](https://github.com/fakhrulhilal/cleanarchitecture-kit) - A starting kit to build project with clean architecture - [iayti/CleanArchitecture](https://github.com/iayti/CleanArchitecture) - [keremvaris/Sennedjem](https://github.com/keremvaris/Sennedjem) - Sennedjem is a software development infrastructure that adopts the CQRS (Command Query Responsibility Segregation) approach and focuses on SOLID principles and Clean Architecture methods. RabbitMq is very skilled in integrating with ElasticSearch etc tools. - [grandnode/grandnode2](https://github.com/grandnode/grandnode2) - Open source, headless, multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, Vue.js. - [iancooper/CA-Tutorial](https://github.com/iancooper/CA-Tutorial) - Implementing the Clean Architecture in .NET - [dimatrubca/book-exchange-app](https://github.com/dimatrubca/book-exchange-app) - BookExchangeApp is a fully functioning application that allows users to exchange books, earn and buy points, and receive recomendations based on the rated books - [fullstackhero/dotnet-webapi-boilerplate](https://github.com/fullstackhero/dotnet-webapi-boilerplate) - .NET WebAPI Boilerplate Template built with .NET 6.0. Incorporates the most essential Packages your projects will ever need. Follows Clean Architecture Principles. - [TanvirArjel/CleanArchitecture](https://github.com/TanvirArjel/CleanArchitecture) - This repository contains the implementation of domain-driven design and clear architecture in ASP.NET Core. - [andresantarosa/CleanArchitectureExample](https://github.com/andresantarosa/CleanArchitectureExample) - CleanArchitectureExample Project - [referbruv/ContainerNinja.CleanArchitecture](https://github.com/referbruv/ContainerNinja.CleanArchitecture) - ContainerNinja is a boilerplate template project to demonstrate building a multi-container Full Stack application with ASP.NET Core (.NET 6) Web API following Clean Architecture, and Angular. - [Grauenwolf/CleanArchitecture](https://github.com/Grauenwolf/CleanArchitecture) - Clean Architecture Solution Template for .NET 6 - [DijanaPenic/DDD-VShop](https://github.com/DijanaPenic/DDD-VShop) - VShop is a sample .NET 6 application built as Modular Monolith with Domain-Driven Design (DDD) approach. Each module is an independent vertical slice with its custom architecture. - [kalintsenkov/BookStore](https://github.com/kalintsenkov/BookStore) - ASP.NET Core | Domain-Driven Design | Clean Architecture - [ShawnShiSS/clean-architecture-azure-cosmos-db](https://github.com/ShawnShiSS/clean-architecture-azure-cosmos-db) - A starting point to build a web API to work with Azure Cosmos DB using .NET 5 and Azure Cosmos DB .NET SDK V3, based on Clean Architecture and repository design pattern. Partition key is also implemented through the repository pattern. - [serodriguez68/clean-architecture](https://github.com/serodriguez68/clean-architecture) - A detailed summary of Clean Architecture by Robert C Martin (Uncle Bob) - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - The main objective of this cloud-native project is to represent the state of the art of a distributed, reliable, and highly scalable system by interpreting the most relevant principles of Reactive Domain Driven Design. - [matt-bentley/CleanArchitecture](https://github.com/matt-bentley/CleanArchitecture) - An opinionated ASP.NET Core solution setup for creating web applications using Clean Architecture and Domain-Driven Design principles. - [amantinband/clean-architecture](https://github.com/amantinband/clean-architecture) - The ultimate clean architecture template for .NET applications. ## 📚 Books - [Get Your Hands Dirty on Clean Architecture](https://www.packtpub.com/product/get-your-hands-dirty-on-clean-architecture/9781839211966) ================================================ FILE: docs/clean-code.md ================================================ # Clean Code ## 📘 Resources - [thangchung/clean-code-dotnet](https://github.com/thangchung/clean-code-dotnet) - 🛁 Clean Code concepts and tools adapted for .NET - [Summary of 'Clean code' by Robert C. Martin](https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29) ## 📕 Articles - [10 common broken rules of clean code](http://www.kamilgrzybek.com/clean-code/10-common-broken-clean-code-rules/) - [Coding standards](https://docs.nopcommerce.com/en/developer/tutorials/coding-standards.html) - [justinamiller/Coding-Standards](https://github.com/justinamiller/Coding-Standards) - [C# Coding Standards and Naming Conventions](https://github.com/ktaranov/naming-convention/blob/master/C%23%20Coding%20Standards%20and%20Naming%20Conventions.md) - [Clean code tips - Tests](https://www.code4it.dev/blog/clean-code-tests) - [Clean code tips - Error handling](https://www.code4it.dev/blog/clean-code-error-handling) - [Clean code tips - Abstraction and objects](https://www.code4it.dev/blog/clean-code-abstraction-and-objects) - [Clean code tips - comments and formatting](https://www.code4it.dev/blog/clean-code-comments-and-formatting) - [Clean code tips - names and functions](https://www.code4it.dev/blog/clean-code-names-and-functions) - [101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips) - [20 Important Tips To Write Clean C# Code – MUST SHARE](https://codewithmukesh.com/blog/write-clean-csharp-code/) - [Clean code tip: How to choose meaningful names?](https://www.code4it.dev/cleancodetips/01-choose-meaningful-names) - [Improving Method and Function Clarity](https://ardalis.com/improving-method-function-clarity/) - [Clean code tip: Principle of Least Surprise](https://www.code4it.dev/cleancodetips/02-principle-of-least-surprise) - [Clean code tip: Use pronounceable and searchable names](https://www.code4it.dev/cleancodetips/03-use-pronounceable-names) ## 📺 Videos - [9 "rules" for cleaner code | Object Calisthenics](https://www.youtube.com/watch?v=gyrSiY4SHxI) - [Is clean code actually slower?](https://www.youtube.com/watch?v=zVLuQAnNue8) - [Clean Code Best Practices](https://www.youtube.com/watch?v=h7TJ7eGeT7Q) ================================================ FILE: docs/cloud-best-practices.md ================================================ # Cloud Best Practices ## 📕Articles - [Best practices in cloud applications](https://docs.microsoft.com/en-us/azure/architecture/best-practices/index-best-practices) - [RESTful web API design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design) - [Web API implementation](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-implementation) - [Autoscaling](https://docs.microsoft.com/en-us/azure/architecture/best-practices/auto-scaling) - [Background jobs](https://docs.microsoft.com/en-us/azure/architecture/best-practices/background-jobs) - [Caching guidance](https://docs.microsoft.com/en-us/azure/architecture/best-practices/caching) - [CDN guidance](https://docs.microsoft.com/en-us/azure/architecture/best-practices/cdn) - [Data partitioning guidance](https://docs.microsoft.com/en-us/azure/architecture/best-practices/data-partitioning) - [Data partitioning strategies](https://docs.microsoft.com/en-us/azure/architecture/best-practices/data-partitioning-strategies) - [Transient fault handling](https://docs.microsoft.com/en-us/azure/architecture/best-practices/transient-faults) - [Performance tuning a distributed application](https://docs.microsoft.com/en-us/azure/architecture/performance/) ================================================ FILE: docs/cloud-design-patterns/ambassador-pattern.md ================================================ # Ambassador Pattern ## 📕 Articles - [Ambassador pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/ambassador) ## 📺 Videos - [Sidecar Pattern to SIMPLIFY services or just more COMPLEXITY?](https://www.youtube.com/watch?v=9zAjtcf9Wyo) ================================================ FILE: docs/cloud-design-patterns/anti-corruption-layer-pattern.md ================================================ # Anti Corruption Layer ## 📕 Articles - [Anti-Corruption Layer pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/anti-corruption-layer) - [Gateway](https://martinfowler.com/eaaCatalog/gateway.html) - [The Anti-Corruption Layer Pattern](https://dev.to/asarnaout/the-anti-corruption-layer-pattern-pcd) - [Anti-Corruption Layer: How to Keep Legacy Support from Breaking New Systems](https://www.cloudbees.com/blog/anti-corruption-layer-how-keep-legacy-support-breaking-new-systems) - [Adapters are true Heralds of DDD](https://tpierrain.blogspot.com/2020/04/adapters-are-true-heralds-of-ddd.html) - [Refactoring code that accesses external services](https://martinfowler.com/articles/refactoring-external-service.html) - [Domain Driven Design: Anti Corruption Layer](https://www.markhneedham.com/blog/2009/07/07/domain-driven-design-anti-corruption-layer/) - [Anti-Corruption Layer - DevIQ](https://deviq.com/domain-driven-design/anti-corruption-layer) - [Adding Anti-Corruption-Layers to Your Web Application](https://www.razorcodes.com/2018/06/10/anticorruption_layer.html) ## 📺 Videos - [Anti-Corruption Layer (ACL) Pattern - Cloud Design Patterns](https://www.youtube.com/watch?v=YYezGu43zkU) - [The Anti-corruption layer, Gateway Aggregation / Routing patterns | Cloud with Chris](https://www.youtube.com/watch?v=gGDu4FdUk7I) - [Anti-corruption Layer for mapping between Boundaries](https://www.youtube.com/watch?v=Dok2Ikcjaro) ================================================ FILE: docs/cloud-design-patterns/bff.md ================================================ # Backend For Frontend (BFF) ## 📕 Articles - [Backends for Frontends pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/backends-for-frontends) - [The BFF Pattern (Backend for Frontend): An Introduction](https://blog.bitsrc.io/bff-pattern-backend-for-frontend-an-introduction-e4fa965128bf) - [SHARING DATA BETWEEN MODULES IN MODULAR MONOLITH](https://dev.to/lukaszreszke/sharing-data-between-modules-in-modular-monolith-50on) - [Pattern: Backends For Frontends](https://samnewman.io/patterns/architectural/bff/) - [Backends for Frontends Pattern — BFF](https://medium.com/design-microservices-architecture-with-patterns/backends-for-frontends-pattern-bff-7ccd9182c6a1) - [Web App Security, Understanding the Meaning of the BFF Pattern](https://dev.to/damikun/web-app-security-understanding-the-meaning-of-the-bff-pattern-i85) - [Scaffold a Duende BFF with React and Vite into Any .NET 6 Project](https://wrapt.dev/blog/scaffolding-duende-bff-with-react) - [Using Duende BFF with React](https://wrapt.dev/blog/using-duende-bff-with-react) - [Creating a Standalone Duende BFF for any SPA](https://wrapt.dev/blog/standalone-duende-bff-for-any-spa) - [Let's make our SPA more secure by setting up a .NET BFF with Duende and Auth0](https://timdeschryver.dev/blog/lets-make-our-spa-more-secure-by-setting-up-a-net-bff-with-duende-and-auth0) - [OAuth 2.0 Security Best Current Practice](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-security-topics) - [Duende docs: BFF Security Framework](https://docs.duendesoftware.com/identityserver/v6/bff/overview/) - [Comparing the backend for frontend (BFF) security architecture with an SPA UI using a public API by Damien Bowden (damienbod)](https://damienbod.com/2022/01/10/comparing-the-backend-for-frontend-bff-security-architecture-with-an-spa-ui-using-a-public-api/) - [Let's make our SPA more secure by consuming a Duende BFF with Angular](https://timdeschryver.dev/blog/lets-make-our-spa-more-secure-by-consuming-a-duende-bff-with-angular) - [A Deep Dive into the Back-End for Front-End Pattern](https://www.codemag.com/Article/2203081/A-Deep-Dive-into-the-Back-End-for-Front-End-Pattern) - [The Backend for Frontend Pattern](https://auth0.com/blog/the-backend-for-frontend-pattern-bff/) - [Implement a secure web application using nx Standalone Angular and an ASP.NET Core server](https://damienbod.com/2023/09/11/implement-a-secure-web-application-using-nx-standalone-angular-and-an-asp-net-core-server/) - [BFF secured ASP.NET Core application using downstream API and an OAuth client credentials JWT](https://damienbod.com/2024/04/08/bff-secured-asp-net-core-application-using-downstream-api-and-an-oauth-client-credentials-jwt/) - [Using YARP as BFF within .NET Aspire: Integrating YARP into .NET Aspire](https://timdeschryver.dev/blog/integrating-yarp-within-dotnet-aspire) - [Secure your Yarp BFF with cookie-based authentication](https://timdeschryver.dev/blog/secure-your-yarp-bff-with-cookie-based-authentication) ## 📺 Videos - [JetBrains webinar with Dominick Baier: Securing SPAs and Blazor Applications using the BFF (Backend for Frontend) Pattern](https://www.youtube.com/watch?v=DdNssiaIY_Q) - [Backends For Frontends Pattern - Cloud Design Patterns - BFF Pattern](https://www.youtube.com/watch?v=wgD9t3R3x-w) - [The Backend For Frontend Pattern](https://www.youtube.com/watch?v=zazeGmFmUxg) - [Designing efficient web app endpoint APIs using the Backends for Frontends (BFF) pattern](https://www.youtube.com/watch?v=9Q6In-tbjUU) - [Why Backend for Frontend Is Key to Your Microservices Journey • B. Grant & K. Ramanathan • GOTO 2017](https://www.youtube.com/watch?v=PwgQZ8eCGxA) - [Episode 020 - The backend for frontend and the HttpClient - ASP.NET Core: From 0 to overkill](https://www.youtube.com/watch?v=A8ZCVzeqFtA) - [Episode 029 - Simplifying the BFF with ProxyKit - ASP.NET Core: From 0 to overkill](https://www.youtube.com/watch?v=Wgu97TKaRiI) - [Mauro Servienti - Designing a UI for Microservices](https://www.youtube.com/watch?v=AxWGAiIg7_0) - [The HIDDEN Challenge of Microservices: UI Composition](https://www.youtube.com/watch?v=ILbjKR1FXoc) ## 📦 Libraries - [ServiceComposer/ServiceComposer.AspNetCore](https://github.com/ServiceComposer/ServiceComposer.AspNetCore) - ServiceComposer, a ViewModel Composition API Gateway ## 🚀 Samples - [manfredsteyer/yarp-auth-proxy](https://github.com/manfredsteyer/yarp-auth-proxy) - [thangchung/bff-auth](https://github.com/thangchung/bff-auth) - The demonstration of modern authentication using BFF pattern - [davidfowl/TodoApi](https://github.com/davidfowl/TodoApi) - ASP.NET Core API with JWT authentication and authorization - [pdevito3/StandaloneBffExample](https://github.com/pdevito3/StandaloneBffExample) - This is the example report for the standalone Duende BFF for my blog post - [thomasdarimont/keycloak-project-example/bff-springboot3](https://github.com/thomasdarimont/keycloak-project-example/tree/main/apps/bff-springboot3) - [damienbod/bff-openiddict-aspnetcore-angular](https://github.com/damienbod/bff-openiddict-aspnetcore-angular) - [damienbod/bff-aspnetcore-angular](https://github.com/damienbod/bff-aspnetcore-angular) - Backend for frontend security using Angular Standalone (nx) and ASP.NET Core backend ================================================ FILE: docs/cloud-design-patterns/bulkhead-pattern.md ================================================ # Bulkhead Pattern ## 📕 Articles - [MICROSERVICE BULKHEAD PATTERN - DOS AND DON'TS](https://akfpartners.com/growth-blog/bulkhead-pattern) ================================================ FILE: docs/cloud-design-patterns/circuit-breaker.md ================================================ # Circuit Breaker ================================================ FILE: docs/cloud-design-patterns/cloud-design-patterns.md ================================================ # Cloud Design Patterns ## 📘 Resources - [Cloud Design Patterns - Microsoft](https://docs.microsoft.com/en-us/azure/architecture/patterns/index-patterns) - [Cloud Computing Patterns - CloudComputingPatterns](https://www.cloudcomputingpatterns.org) ## 📕 Articles - [Design patterns for microservices](https://azure.microsoft.com/en-us/blog/design-patterns-for-microservices/) - [Design patterns for microservices](https://azure.microsoft.com/en-us/blog/design-patterns-for-microservices/) - [Monolithic to Microservices Architecture with Patterns & Best Practices](https://medium.com/design-microservices-architecture-with-patterns/monolithic-to-microservices-architecture-with-patterns-best-practices-a768272797b2) - [Microservices Database Management Patterns and Principles](https://medium.com/design-microservices-architecture-with-patterns/microservices-database-management-patterns-and-principles-9121e25619f1) - [How to Choose a Database for Microservices — CAP Theorem](https://medium.com/design-microservices-architecture-with-patterns/how-to-choose-a-database-for-microservices-cap-theorem-d1585bf40ecd) - [Service Aggregator Pattern](https://medium.com/design-microservices-architecture-with-patterns/service-aggregator-pattern-e87561a47ac6) - [Event Sourcing Pattern in Microservices Architectures](https://medium.com/design-microservices-architecture-with-patterns/event-sourcing-pattern-in-microservices-architectures-e72bf0fc9274) - [CQRS Design Pattern in Microservices Architectures](https://medium.com/design-microservices-architecture-with-patterns/cqrs-design-pattern-in-microservices-architectures-5d41e359768c) - [Materialized View Pattern](https://medium.com/design-microservices-architecture-with-patterns/materialized-view-pattern-f29ea249f8f8) - [Microservices Deployments with Containers and Orchestrators](https://medium.com/design-microservices-architecture-with-patterns/microservices-deployments-with-containers-and-orchestrators-c693292997f9) - [Outbox Pattern for Microservices Architectures](https://medium.com/design-microservices-architecture-with-patterns/outbox-pattern-for-microservices-architectures-1b8648dfaa27) - [Saga Pattern for Microservices Distributed Transactions](https://medium.com/design-microservices-architecture-with-patterns/saga-pattern-for-microservices-distributed-transactions-7e95d0613345) - [Microservices Distributed Transactions](https://medium.com/design-microservices-architecture-with-patterns/microservices-distributed-transactions-a71a996e5db8) - [Database Sharding Pattern for Scaling Microservices Database Architecture](https://medium.com/design-microservices-architecture-with-patterns/database-sharding-pattern-for-scaling-microservices-database-architecture-2077a556078) - [Service Registry Pattern](https://medium.com/design-microservices-architecture-with-patterns/service-registry-pattern-75f9c4e50d09) - [API Gateway Pattern](https://medium.com/design-microservices-architecture-with-patterns/api-gateway-pattern-8ed0ddfce9df) - [Gateway Aggregation Pattern](https://medium.com/design-microservices-architecture-with-patterns/gateway-aggregation-pattern-9ff92e1771d0) - [Microservice Communications between Backend Internal Microservices](https://medium.com/design-microservices-architecture-with-patterns/microservice-communications-between-backend-internal-microservices-9029d4b0acd8) - [Backends for Frontends Pattern — BFF](https://medium.com/design-microservices-architecture-with-patterns/backends-for-frontends-pattern-bff-7ccd9182c6a1) - [Microservices Data Management](https://medium.com/design-microservices-architecture-with-patterns/microservices-data-management-3235893b7c29) - [Microservices Data Management when performing Queries between Services](https://medium.com/design-microservices-architecture-with-patterns/microservices-data-management-when-performing-queries-between-services-42896a733567) - [Microservices Architecture](https://medium.com/design-microservices-architecture-with-patterns/microservices-architecture-2bec9da7d42a) - [Scaling Databases in Microservices Architecture with Horizontal, Vertical, and Functional Data Partitioning](https://medium.com/design-microservices-architecture-with-patterns/scaling-databases-in-microservices-architecture-with-horizontal-vertical-and-functional-data-537c5aea41d6) - [Microservices Distributed Caching](https://medium.com/design-microservices-architecture-with-patterns/microservices-distributed-caching-76828817e41b) ## 📺 Videos - [Azure Cloud Design Patterns](https://www.youtube.com/playlist?list=PLDUPL1iASgCxy37G5ZTUo7LQZId8sw53y) - [Cloud Design Patterns in depth](https://www.youtube.com/watch?v=cxYHugyNTP0) ## 🚀 Samples - [mspnp/cloud-design-patterns](https://github.com/mspnp/cloud-design-patterns) - Prescriptive Architecture Guidance for Cloud Applications ## 📚 Books - [Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications (Microsoft patterns & practices)](https://www.amazon.com/Cloud-Design-Patterns-Prescriptive-Architecture-ebook/dp/B00ITGHBBS) - [Cloud Architecture Patterns: Using Microsoft Azure](https://www.amazon.com/Cloud-Architecture-Patterns-Using-Microsoft/dp/1449319777) ================================================ FILE: docs/cloud-design-patterns/exactly-one-delivery.md ================================================ # Exactly-Once Delivery ## 📕 Articles - [Exactly-once Delivery](https://www.cloudcomputingpatterns.org/exactly_once_delivery/) - cloudcomputingpatterns.org ================================================ FILE: docs/cloud-design-patterns/gateway-aggregation.md ================================================ # Gateway Aggregation ## 📕 Articles - [MICROSERVICE AGGREGATOR PATTERN](https://akfpartners.com/growth-blog/microservice-aggregator-pattern) - [Gateway Aggregation pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/gateway-aggregation) ================================================ FILE: docs/cloud-design-patterns/gateway-pattern.md ================================================ # Gateway Pattern ## 📕 Articles - [MICROSERVICES ARCHITECTURE GATEWAY PATTERN - DOS AND DON'TS](https://akfpartners.com/growth-blog/microservices-architecture-gateway-pattern-dos-and-donts) - [Gateway Aggregation pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/gateway-aggregation) - [Gateway Offloading pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/gateway-offloading) ================================================ FILE: docs/cloud-design-patterns/inbox-pattern.md ================================================ # Inbox Pattern & Duplicate detection ## 📕 Articles - [Duplicate detection](https://learn.microsoft.com/en-us/azure/service-bus-messaging/duplicate-detection) ⭐ - [Handling Duplicate Messages (Idempotent Consumers)](https://codeopinion.com/handling-duplicate-messages-idempotent-consumers/) - [Outbox, Inbox patterns and delivery guarantees explained](https://event-driven.io/en/outbox_inbox_patterns_and_delivery_guarantees_explained/) - [Handling duplicate messages using the Idempotent consumer pattern](https://chrisrichardson.net/post/microservices/patterns/2020/10/16/idempotent-consumer.html) - [Microservices 101: Transactional Outbox and Inbox](https://softwaremill.com/microservices-101/) - [Message delivery and deduplication strategies](https://softwaremill.com/message-delivery-and-deduplication-strategies/) - [Duplicate detection](https://learn.microsoft.com/en-us/azure/service-bus-messaging/duplicate-detection) - [Exactly-once message delivery](https://exactly-once.github.io/posts/exactly-once-delivery/) ## 📺 Videos - [Inbox & Outbox pattern - transactional message processing [Microservices .NET]](https://www.youtube.com/watch?v=ebyR5RPKciw) - [Handling Duplicate Messages (Idempotent Consumers)](https://www.youtube.com/watch?v=xeBY8fCWfvU) ================================================ FILE: docs/cloud-design-patterns/outbox-pattern.md ================================================ # At-least-Once Delivery (Outbox Pattern) ## 📕 Articles - [Sending Reliable Event Notifications with Transactional Outbox Pattern](https://medium.com/event-driven-utopia/sending-reliable-event-notifications-with-transactional-outbox-pattern-7a7c69158d1b) - [At-least-once Delivery](https://www.cloudcomputingpatterns.org/at_least_once_delivery/) - cloudcomputingpatterns.org - [The Outbox Pattern - Kamil Grzybek](http://www.kamilgrzybek.com/design/the-outbox-pattern/) - [The Outbox Pattern in Event-Driven ASP.NET Core Microservice Architectures](https://itnext.io/the-outbox-pattern-in-event-driven-asp-net-core-microservice-architectures-10b8d9923885) - [Refactoring Towards Resilience: Evaluating Coupling](https://jimmybogard.com/refactoring-towards-resilience-evaluating-coupling/) - [A better domain events pattern](https://lostechies.com/jimmybogard/2014/05/13/a-better-domain-events-pattern/) - [Outbox Pattern for Microservices Architectures](https://medium.com/design-microservices-architecture-with-patterns/outbox-pattern-for-microservices-architectures-1b8648dfaa27) - [Outbox, Inbox patterns and delivery guarantees explained](https://event-driven.io/en/outbox_inbox_patterns_and_delivery_guarantees_explained/) - [Outbox Pattern: Reliably Save State & Publish Events](https://codeopinion.com/outbox-pattern-reliably-save-state-publish-events/) - [Handling Duplicate Messages (Idempotent Consumers)](https://codeopinion.com/handling-duplicate-messages-idempotent-consumers/) - [CAP: Event Bus & Outbox Pattern](https://codeopinion.com/cap-event-bus-outbox-pattern/) - [Reliable Microservices Data Exchange With the Outbox Pattern](https://debezium.io/blog/2019/02/19/reliable-microservices-data-exchange-with-the-outbox-pattern/) - [Implementing the Outbox Pattern Using Hangfire and MediatR CQRS Handlers](https://www.fusonic.net/en/blog/cqrs-outbox-with-hangfire) - [Push-based Outbox Pattern with Postgres Logical Replication](https://event-driven.io/en/push_based_outbox_pattern_with_postgres_logical_replication/) - [Microservices 101: Transactional Outbox and Inbox](https://softwaremill.com/microservices-101/) - [Message delivery and deduplication strategies](https://softwaremill.com/message-delivery-and-deduplication-strategies/) - [How Postgres sequences issues can impact your messaging guarantees](https://event-driven.io/en/ordering_in_postgres_outbox/) - [How to get all messages through Postgres logical replication](https://event-driven.io/en/how_to_get_all_messages_through_postgres_logical_replication/) - [What happens if we lose some event(s) during transaction?](https://bozd4g.medium.com/what-happens-if-we-lose-some-events-during-transaction-607e7b08b77) - [Receive modes in Azure Service Bus](https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-queues-topics-subscriptions#receive-modes) - [Duplicate detection](https://learn.microsoft.com/en-us/azure/service-bus-messaging/duplicate-detection) - [What does idempotent mean in software systems?](https://particular.net/blog/what-does-idempotent-mean) - [Transactional outbox pattern meets distributed tracing and OpenTelemetry](https://blog.codingmilitia.com/2024/06/17/transactional-outbox-pattern-meets-distributed-tracing-and-opentelemetry/) - [Saga Orchestration for Microservices Using the Outbox Pattern](https://www.infoq.com/articles/saga-orchestration-outbox/) ⭐ ## 📺 Videos - [Reliably Save State & Publish Events (Outbox Pattern)](https://www.youtube.com/watch?v=u8fOnxAxKHk) - [CAP: Event Bus & Outbox Pattern](https://www.youtube.com/watch?v=dnhPzILvgeo) - [Inbox & Outbox pattern - transactional message processing [Microservices .NET]](https://www.youtube.com/watch?v=ebyR5RPKciw) - [[Stream Archive | 2020-03-27] Start event driven integration between services (feat. outbox pattern)](https://www.youtube.com/watch?v=_W3rXyv2i2A) - [[Stream Archive | 2020-04-10] Implementing the outbox message publisher](https://www.youtube.com/watch?v=M9so8hHuerE) - [[Stream Archive | 2020-04-17] Continuing the outbox message publisher and adding a fallback](https://www.youtube.com/watch?v=eGPhF_0tCE4) - [Event-driven integration #1 - Intro to the transactional outbox pattern [ASPF02O|E040]](https://www.youtube.com/watch?v=suKSJ5DvynA) - [Event-driven integration #4 - Outbox publisher (feat. IHostedService & Channels) [ASPF02O|E043]](https://www.youtube.com/watch?v=xnn6AnYyC5g) - [Outbox meets change data capture (feat. .NET, PostgreSQL, Kafka and Debezium)](https://www.youtube.com/watch?v=WcmLvoxs9ps) - [Outbox meets change data capture - hooking into the Write-Ahead Log (feat. .NET, PostgreSQL & Kafka)](https://www.youtube.com/watch?v=4rnSzEd9jPI) - [MassTransit - The New Transactional Outbox](https://www.youtube.com/watch?v=3TjGnmLno_A) ## 📦 Libraries - [oskardudycz/PostgresOutboxPatternWithCDC.NET](https://github.com/oskardudycz/PostgresOutboxPatternWithCDC.NET) - PoC of doing Outbox Pattern with CDC and .NET - [cfrenzel/Eventfully](https://github.com/cfrenzel/Eventfully) - Lightweight Reliable Messaging Framework using Outbox Pattern / EFCore / AzureServiceBus ## 🚀 Samples - [joaofbantunes/PostgresChangeDataCaptureOutboxSample](https://github.com/joaofbantunes/PostgresChangeDataCaptureOutboxSample) - Tiny event driven sample application, using change data capture, via Npgsql, to help implement the outbox pattern - [seralaci/dotnet-microservices-data-exchange-with-outbox-pattern-debezium](https://github.com/seralaci/dotnet-microservices-data-exchange-with-outbox-pattern-debezium) - True Atomic Microservices Implementation with Debezium and Outbox Pattern to Ensure Data Consistency. - [oskardudycz/kafka-connect](https://github.com/oskardudycz/kafka-connect) - [bozd4g/FB.TransactionalOutbox](https://github.com/bozd4g/FB.TransactionalOutbox) - A sample Transactional Outbox Pattern implementation written with .NET Core. - [joaofbantunes/OutboxPatternMeetsOpenTelemetrySample](https://github.com/joaofbantunes/OutboxPatternMeetsOpenTelemetrySample) ================================================ FILE: docs/cloud-design-patterns/sidecar.md ================================================ # Sidecar Pattern ## 📕Articles - [Sidecar pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar) ## 📺 Videos - [Sidecar Pattern to SIMPLIFY services or just more COMPLEXITY?](https://www.youtube.com/watch?v=9zAjtcf9Wyo) ================================================ FILE: docs/cloud-design-patterns/strangler-fig-pattern.md ================================================ # Strangler Fig Pattern ## Articles - [Strangler Fig pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/strangler-fig) - [StranglerFigApplication](https://martinfowler.com/bliki/StranglerFigApplication.html) - [Refactoring Legacy Code with the Strangler Fig Pattern](https://shopify.engineering/refactoring-legacy-code-strangler-fig-pattern) ================================================ FILE: docs/cloud-native.md ================================================ # Cloud Native ## 📘 Resources - [Architecting Cloud Native .NET Applications for Azure](https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/) - [joseadanof/awesome-cloudnative-trainings](https://github.com/joseadanof/awesome-cloudnative-trainings) - Awesome Trainings from Cloud Native Computing Foundation Projects and Kubernetes related software ## 📕 Articles - [Introduction to cloud-native applications](https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/introduction) - [Defining cloud native](https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition) - [Candidate apps for cloud native](https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/candidate-apps) - [What is Cloud Native?](https://www.oracle.com/cloud/cloud-native/what-is-cloud-native/) - [6 Essential Things You Need to Know About Cloud Native Applications](https://www.weave.works/technologies/going-cloud-native-6-essential-things-you-need-to-know/) - [Reference Architecture for a Cloud Native Digital Enterprise](https://github.com/wso2/reference-architecture/blob/master/reference-cloud-native-architecture-digital-enterprise.md) ## 📺 Videos - [Cloud Native 101 Video](https://www.youtube.com/watch?v=9Ik96SBaIvs) - [What is Cloud Native?](https://www.youtube.com/watch?v=fp9_ubiKqFU) - [Architecting a Cloud Native API Solution](https://www.youtube.com/watch?v=sKfep-UmZeM&list=PLOspHqNVtKACSagAEeIY20NMVLNeQ1ZJx&index=13) - [Keynote: What is Cloud Native and Why Should I Care? - Alexis Richardson, CEO of Weaveworks](https://www.youtube.com/watch?v=TKYAI19OE-c) - [An Introduction to the Cloud-Native Concept](https://www.youtube.com/watch?v=nyQAkR84RHM) - [Cloud Native DevOps Explained](https://www.youtube.com/watch?v=FzERTm_j2wE) - [Traditional vs Cloud Native Applications](https://www.youtube.com/watch?v=osz-MT3AxqA) - [What is Cloud Native? | Cloud Native Vs Traditional Application - What is the difference?](https://www.youtube.com/watch?v=NoFu_rpM7EQ) - [Practical Cloud Native: What Works, What Doesn't • Sarah Wells • GOTO 2021](https://www.youtube.com/watch?v=esaoQPIIiTo) ## 📚 Books - [Architecting Cloud-Native App for Azure](https://dotnet.microsoft.com/download/e-book/cloud-native-azure/pdf) - [Cloud Native Architecture and Design: A Handbook for Modern Day Architecture and Design with Enterprise-Grade Examples](https://www.amazon.com/Cloud-Native-Architecture-Design-Enterprise-Grade-ebook/dp/B09HMCNZWH) ================================================ FILE: docs/code-review.md ================================================ # Code Review ### 📕Articles - [The Code Review Pyramid](https://www.morling.dev/blog/the-code-review-pyramid/) ================================================ FILE: docs/concurrency.md ================================================ # Concurrency ## 📕Articles - [Optimistic Concurrency](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/optimistic-concurrency) - [Optimistic concurrency for pessimistic times](https://event-driven.io/en/optimistic_concurrency_for_pessimistic_times/) - [How to use ETag header for optimistic concurrency](https://event-driven.io/en/how_to_use_etag_header_for_optimistic_concurrency/) - [Concurrency Management in Entity Framework Core](https://www.learnentityframeworkcore.com/concurrency) - [Basics Concurrency Controls and Conflicts with .NET EF Core](https://thecodeblogger.com/2021/07/03/basics-concurrency-controls-and-conflicts-with-net-ef-core/) - [Implement optimistic concurrency with .NET EF Core](https://thecodeblogger.com/2021/07/04/implement-optimistic-concurrency-with-net-ef-core/) - [Transactions and optimistic concurrency control](https://docs.microsoft.com/en-us/azure/cosmos-db/sql/database-transactions-optimistic-concurrency) - [Optimistic Locking with Version Number](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.OptimisticLocking.html) - [Handling concurrency – Aggregate Pattern and EF Core](http://www.kamilgrzybek.com/design/handling-concurrency-aggregate-pattern-and-ef-core/) - [Handling Concurrency Conflicts](https://docs.microsoft.com/en-us/ef/core/saving/concurrency) - [How to handle concurrency in Entity Framework Core](https://www.mssqltips.com/sqlservertip/6115/how-to-handle-concurrency-in-entity-framework-core/) - [Handling data concurrency in EF Core and ASP.NET Core WebAPI](https://dejanstojanovic.net/aspnet/2018/november/handling-data-concurrency-in-ef-core-and-aspnet-core-webapi/) - [Concurrency Tokens](https://docs.microsoft.com/en-us/ef/core/modeling/concurrency) - [Handling Concurrency Conflicts](https://docs.microsoft.com/en-us/ef/core/saving/concurrency) - [Handling Concurrency in EF-Core](https://www.learnentityframeworkcore5.com/handling-concurrency-in-ef-core) - [Optimistic Concurrency Management in EntityFramework Core](https://codeburst.io/optimistic-concurrency-management-in-entityframework-core-79a4921067cb) - [Solving Concurrency in Event-Driven Microservices](https://medium.com/@hugo.oliveira.rocha/solving-concurrency-in-event-driven-microservices-79bbc13b597c) - [Optimistic concurrency in Event Store](https://developers.eventstore.com/clients/dotnet/5.0/appending.html#optimistic-concurrency) - [Solving Concurrency in Event-Driven Microservices](https://itnext.io/solving-concurrency-in-event-driven-microservices-79bbc13b597c) - [Five RESTFul Web Design Patterns Implemented in ASP.NET Core 2.0 Part 4: Optimistic Concurrency](https://blog.jeremylikness.com/blog/2017-12-15_five-restful-web-design-patterns-implemented-in-asp.net-core-2.0-part-4-optimistic-concurrency/) - [Implementing optimistic concurrency with EF Core](https://dzimchuk.net/implementing-optimistic-concurrency-with-ef-core/) - [Optimistic concurrency control in ASP.NET WebAPI](https://tudorturcu.wordpress.com/2012/04/30/optimistic-concurrency-control-asp-net-webapi-en/) - [Optimistic concurrency support in HTTP and WebAPI – part 2](https://tudorturcu.wordpress.com/2012/05/17/optimistic-concurrency-support-in-http-and-webapi-part-2/) - [Comparing Optimistic and Pessimistic Locking With GO and PostgreSQL](https://hackernoon.com/comparing-optimistic-and-pessimistic-locking-with-go-and-postgresql) - [Dealing With Optimistic Concurrency Control Collisions](https://jimmybogard.com/dealing-with-optimistic-concurrency-control-collisions/) - [Distributed Locks with Redis](https://redis.io/docs/manual/patterns/distributed-locks/) - [Optimistic Concurrency in an HTTP API with ETags & Hypermedia](https://codeopinion.com/optimistic-concurrency-in-an-http-api-with-etags-hypermedia/) - [HTTP and ETag Header Fields](https://blog.peterritchie.com/posts/http-and-etag-header-fields) ⭐ - [ETags in ASP.NET Core](https://blog.peterritchie.com/posts/etags-in-aspdotnet-core) ⭐ - [Be optimistic about concurrency in Entity Framework](https://www.dateo-software.de/blog/concurrency-entity-framework) # Videos - [Optimistic Concurrency in an HTTP API with ETags & Hypermedia](https://www.youtube.com/watch?v=2Nk3kCCyu3A) ## 📦 Libraries - [kidfashion/redlock-cs](https://github.com/kidfashion/redlock-cs) - Distributed lock with Redis and C# (based on http://redis.io/topics/distlock) - [samcook/RedLock.net](https://github.com/samcook/RedLock.net) - An implementation of the Redlock algorithm in C# - [madelson/DistributedLock](https://github.com/madelson/DistributedLock) - A .NET library for distributed synchronization # Samples - [dotnet/EntityFramework.Docs/Concurrency/BasicSample](https://github.com/dotnet/EntityFramework.Docs/blob/main/samples/core/Saving/Concurrency/BasicSample.cs) - [dotnet/EntityFramework.Docs/Concurrency/ConflictResolutionSample](https://github.com/dotnet/EntityFramework.Docs/blob/main/samples/core/Saving/Concurrency/ConflictResolutionSample.cs) ================================================ FILE: docs/cqrs.md ================================================ # CQRS ## 📕 Articles - [Command and Query Responsibility Segregation (CQRS) pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs) - [Simple CQRS implementation with raw SQL and DDD](http://www.kamilgrzybek.com/design/simple-cqrs-implementation-with-raw-sql-and-ddd/) - [CQRS/MediatR implementation patterns](https://lostechies.com/jimmybogard/2016/10/27/cqrsmediatr-implementation-patterns/) - [CQRS Myths: 3 Most Common Misconceptions](https://codeopinion.com/cqrs-myths-3-most-common-misconceptions/) - [Dealing with Duplication in MediatR Handlers](https://lostechies.com/jimmybogard/2016/12/12/dealing-with-duplication-in-mediatr-handlers/) - [Implement reads/queries in a CQRS microservice](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/cqrs-microservice-reads) - [Some thoughts on using CQRS without Event Sourcing](https://medium.com/@mbue/some-thoughts-on-using-cqrs-without-event-sourcing-938b878166a2) - [Tackling Complexity in CQRS](https://vladikk.com/2017/03/20/tackling-complexity-in-cqrs/) - [From CQS to CQRS](https://herbertograca.com/2017/10/19/from-cqs-to-cqrs/) - [Building a robust CQRS database with EF Core and Cosmos DB](https://www.thereformedprogrammer.net/building-a-robust-cqrs-database-with-ef-core-and-cosmos-db/) - [EF Core – Combining SQL and NoSQL databases for better performance](https://www.thereformedprogrammer.net/ef-core-combining-sql-and-nosql-databases-for-better-performance/) - [CQRS facts and myths explained](https://event-driven.io/en/cqrs_facts_and_myths_explained/) - [CQRS](https://web.archive.org/web/20160729165044/https://goodenoughsoftware.net/2012/03/02/cqrs/) - [CQRS, Task Based UIs, Event Sourcing agh!](http://codebetter.com/gregyoung/2010/02/16/cqrs-task-based-uis-event-sourcing-agh/) - [Command Query Separation?](http://codebetter.com/gregyoung/2009/08/13/command-query-separation/) - [Processing multiple aggregates – transactional vs eventual consistency](http://www.kamilgrzybek.com/design/processing-multiple-aggregates-transactional-vs-eventual-consistency/) - [What is CQRS?](http://cqrs.nu/Faq/command-query-responsibility-segregation) - [Task-Based UI](https://cqrs.wordpress.com/documents/task-based-ui/) - [Put your controllers on a diet: GETs and queries](https://lostechies.com/jimmybogard/2013/10/29/put-your-controllers-on-a-diet-gets-and-queries/) - [Exposing IQueryable in a CQRS Query Stack](https://buildplease.com/pages/lets-iqueryable/) - [Reactive in practice, Unit 3: Translate the domain model to service APIs](https://developer.ibm.com/tutorials/reactive-in-practice-3/) - [Reactive in practice, Unit 6: CQRS, Part 1 – Write side](https://developer.ibm.com/tutorials/reactive-in-practice-6/) - [Reactive in practice, Unit 7: CQRS, Part 2 – ReadSideProcessor for queries and views](https://developer.ibm.com/tutorials/reactive-in-practice-7/) - [Reactive in practice, Unit 8: CQRS, Part 3 – ReadSideProcessor for transactions](https://developer.ibm.com/tutorials/reactive-in-practice-8/) - [CQRS with MediatR and AutoMapper](https://lostechies.com/jimmybogard/2015/05/05/cqrs-with-mediatr-and-automapper/) - [Meanwhile... on the command side of my architecture](https://blogs.cuttingedge.it/steven/posts/2011/meanwhile-on-the-command-side-of-my-architecture/) - [Meanwhile... on the query side of my architecture](https://blogs.cuttingedge.it/steven/posts/2011/meanwhile-on-the-query-side-of-my-architecture/) - [MVC Controllers are Dinosaurs - Embrace API Endpoints](https://ardalis.com/mvc-controllers-are-dinosaurs-embrace-api-endpoints/) - [Moving from Controllers and Actions to Endpoints with MediatR](https://ardalis.com/moving-from-controllers-and-actions-to-endpoints-with-mediatr/) - [CQRS snippets](https://cezarypiatek.github.io/post/cqrs-snippets/) - [CQRS Simple Architecture](https://kariera.future-processing.pl/blog/cqrs-simple-architecture/) - [Brighter Commands](https://www.goparamore.io/command) - [CQRS with Entity Framework Core](https://www.edgesidesolutions.com/cqrs-with-entity-framework-core/) - [A .Net5 Sample Using CQRS(Command Query Responsibility Segregation) And MediatR Patterns](https://www.learmoreseekmore.com/2021/03/dotnet5-sample-cqrs-mediatr-pattern.html) - [CQRS with MediatR and AutoMapper](https://lostechies.com/jimmybogard/2015/05/05/cqrs-with-mediatr-and-automapper/) - [Thin Controllers with CQRS and MediatR](https://codeopinion.com/thin-controllers-cqrs-mediatr/) - [Are CQRS commands part of the domain model?](https://enterprisecraftsmanship.com/posts/cqrs-commands-part-domain-model/) - [CQS with Database-Generated Ids](https://enterprisecraftsmanship.com/posts/cqs-with-database-generated-ids/) - [CQRS and exception handling](https://enterprisecraftsmanship.com/2019/04/15/cqrs-exception-handling/) - [When to validate commands in CQRS?](https://enterprisecraftsmanship.com/2019/02/20/validate-commands-cqrs/) - [Types of CQRS](https://enterprisecraftsmanship.com/posts/types-of-cqrs/) - [Message Naming Conventions](https://jimmybogard.com/message-naming-conventions/) - [CQRS - CodeWithShadman](https://codewithshadman.com/cqrs/) - [Mediator Pattern Implemented In .NET/C#](https://dasith.me/2019/01/07/mediator-pattern-implemented-in-net/) - [Getting Started with CQRS – Part 1](https://www.red-gate.com/simple-talk/dotnet/c-programming/getting-started-with-cqrs-part-1/) - [Getting Started with CQRS – Part 2](https://www.red-gate.com/simple-talk/dotnet/c-programming/getting-started-with-cqrs-part-2/) - [Getting Started with CQRS – Part 3](https://www.red-gate.com/simple-talk/dotnet/c-programming/getting-started-with-cqrs-part-3/) - [CQRS with MediatR in ASP.NET Core 3.1 – Ultimate Guide](https://codewithmukesh.com/blog/cqrs-in-aspnet-core-3-1/) - [Optimize your data access by using CQRS Architecture Pattern — Part I](https://itnext.io/cqrs-architecture-pattern-c7f5c613c59c) - [Optimize your data access by using CQRS Architecture Pattern — Part II](https://itnext.io/optimize-your-data-access-by-using-cqrs-architecture-pattern-a-theoretical-and-practical-approach-part-1-b31fe259ea04) - [CQRS and REST: the perfect match](https://lostechies.com/jimmybogard/2016/06/01/cqrs-and-rest-the-perfect-match/) - [Spring and Data Synchronization Between Queries and Commands](https://thenewstack.io/how-cqrs-works-with-spring-tools/) - [Combining DDD, CQRS, and Clean Architecture by refactoring a Go project](https://threedots.tech/post/ddd-cqrs-clean-architecture-combined/) - [CQRS: Intro](https://valerii-udodov.com/posts/cqrs/cqrs-intro/) - [CQRS: Querying via HTTP](https://valerii-udodov.com/posts/cqrs/cqrs-querying-via-http/) - [CQRS: Commanding via HTTP](https://valerii-udodov.com/posts/cqrs/cqrs-commanding-via-http/) - [CQRS without Multiple Data Sources](https://codeopinion.com/cqrs-without-multiple-data-sources/) - [CQS versus server generated IDs](https://blog.ploeh.dk/2014/08/11/cqs-versus-server-generated-ids/) - [CQRS: What? Why? How?](https://sderosiaux.medium.com/cqrs-what-why-how-945543482313) - [How to register all CQRS handlers by convention](https://event-driven.io/en/how_to_register_all_mediatr_handlers_by_convention/) - [CQRS is simpler than you think with .NET 6 and C# 10](https://event-driven.io/en/cqrs_is_simpler_than_you_think_with_net6/) - [Why I don't use MediatR for CQRS](https://cezarypiatek.github.io/post/why-i-dont-use-mediatr-for-cqrs/) - [CQRS & Event Sourcing Code Walk-Through](https://codeopinion.com/cqrs-event-sourcing-code-walk-through/) - [Should you use the Repository Pattern? With CQRS, Yes and No!](https://codeopinion.com/should-you-use-the-repository-pattern-with-cqrs-yes-and-no/) - [3 CQRS Architectures that Every Software Architect Should Know](https://levelup.gitconnected.com/3-cqrs-architectures-that-every-software-architect-should-know-a7f69aae8b6c) - [CQRS(Command-Query Responsibility Segregation)](https://www.eventstore.com/cqrs-pattern) - [What's the difference between a command and an event?](https://event-driven.io/en/whats_the_difference_between_event_and_command/) - [Can command return a value?](https://event-driven.io/en/can_command_return_a_value/) - [Busting some CQRS myths](https://lostechies.com/jimmybogard/2012/08/22/busting-some-cqrs-myths/) - [Event Sourcing and CQRS](https://zimarev.com/blog/event-sourcing/cqrs/) - [Overselling Event Sourcing](https://zimarev.com/blog/event-sourcing/myth-busting/2020-07-09-overselling-event-sourcing/) - [Live projections for read models with Event Sourcing and CQRS](https://www.eventstore.com/blog/live-projections-for-read-models-with-event-sourcing-and-cqrs) - [6 Code Smells with your CQRS Events – and How to Avoid Them](https://danielwhittaker.me/2014/10/18/6-code-smells-cqrs-events-avoid/) - [CQRS is not a general purpose style of architecture](http://tpierrain.blogspot.com/2022/07/cqrs-is-not-general-purpose-style-of.html) - [CQRS + Event Sourcing – Step by Step](https://danielwhittaker.me/2020/02/20/cqrs-step-step-guide-flow-typical-application/) ## 📺 Videos - [CQRS is Simpler than you think with C#9 & NET5](https://www.youtube.com/watch?v=eOPlg-eB4As) - [Is CQRS Complicated? No, it's simple!](https://www.youtube.com/watch?v=LbVpPQaAgVY) - [Java EE: Design Patterns and Architecture](https://www.linkedin.com/learning/java-ee-design-patterns-and-architecture/advantages-and-disadvantages-4) - [Decomposing CRUD to a Task Based UI](https://www.youtube.com/watch?v=DjZepWrAKzM) - [CQRS Myths | 3 Most Common Misconceptions](https://www.youtube.com/watch?v=O9qpcZt6jW0&t=77s) - [Is a REST API with CQRS Possible?](https://www.youtube.com/watch?v=6XO6vSiioWE) - [Organizing (Commands, Events & Handlers) in Microservices/SOA](https://www.youtube.com/watch?v=8j5ETvSSNpc) - [CQRS Myths | 3 Most Common Misconceptions](https://www.youtube.com/watch?v=O9qpcZt6jW0) - [On .NET Live - Commands, Queries, and other architectural patterns for your .NET Application](https://www.youtube.com/watch?v=ysxgpVfyeNA) - [Fat Controller CQRS Diet Talk](https://www.youtube.com/watch?v=icyvKTuZkzE) - [CQRS - Event Sourcing || Deep Dive on Building Event Driven Systems || Part-1 ||](https://www.youtube.com/watch?v=3TwLEoLtpw0) - [CQRS - Event Sourcing || Deep Dive on Building Event Driven Systems || Part -2 ||](https://www.youtube.com/watch?v=MKdHSKeMpk0) - [Should you use the Repository Pattern? With CQRS, Yes and No!](https://www.youtube.com/watch?v=01lygxvbao4) - [Mini Course #1 Clean Architecture + CQRS](https://www.youtube.com/watch?v=NzcZcim9tp8) - [CQRS & Event Sourcing Code Walk-Through](https://www.youtube.com/watch?v=5aznkIEvkKc) - [Understanding CQRS Basics [ASP .NET C#]](https://www.youtube.com/watch?v=8uZd51-OAEw) - [Eventual Consistency is a UX Nightmare](https://www.youtube.com/watch?v=wEUTMuRSZT0) - [4Developers 2021: CQRS is simpler than you think with C#9 and .NET 5! - Oskar Dudycz](https://www.youtube.com/watch?v=Emno7yFkpPw) - [CQRS and Event Sourcing with Alexey Zimarev](https://www.youtube.com/watch?v=Hq6zO-A0hMI) - [CQRS Doesn't Have To Be Complicated | Clean Architecture, .NET 6](https://www.youtube.com/watch?v=vdi-p9StmG0) - [CRUD API + Complexity = Death by a 1000 Papercuts](https://www.youtube.com/watch?v=kalD8TcRBCc) - [AVOID Entity Services by Focusing on Capabilities](https://www.youtube.com/watch?v=2gOOstEI4vU) - [[Oskar Dudycz] Od CRUD do CQRS w praktyce](https://www.youtube.com/watch?v=jU5aKVQmBeM) - [CQRS is simpler than you think with C#11 and .NET 7! - Oskar Dudycz](https://www.youtube.com/watch?v=iY7LO289qnQ) - [CQRS pitfalls and patterns - Udi Dahan - NDC Oslo 2023](https://www.youtube.com/watch?v=Lw04HRF8ies) - [CQRS Global Introduction. DDD IASA - Udi Dahan](https://www.youtube.com/watch?v=EkEz3pcLdgY) - [From CQRS to CRUD in Practice - Oskar Dudycz](https://www.architecture-weekly.com/p/webinar-4-from-cqrs-to-crud-in-practice) ## 📦 Libraries - [eventflow/EventFlow](https://github.com/eventflow/EventFlow) - Async/await first CQRS+ES and DDD framework for .NET - [gautema/CQRSlite](https://github.com/gautema/CQRSlite) - A lightweight framework to help creating CQRS and Eventsourcing applications in C# - [eventflow/EventFlow](https://github.com/eventflow/EventFlow) - Async/await first CQRS+ES and DDD framework for .NET - [oskardudycz/GoldenEye](https://github.com/oskardudycz/GoldenEye) - The CQRS flavoured framework that will speed up your WebAPI and Microservices development - [Shriek-Projects/shriek-fx](https://github.com/Shriek-Projects/shriek-fx) - An easy-to-use rapid development framework developed on the basis of.NET Core 2.0, following the constraints of domain Driven Design (DDD) specifications, combined with the CQRS architecture to provide the infrastructure for event-driven, event backtracking, responsiveness, and more. Let developers enjoy the true meaning of object-oriented - [daxnet/apworks-core](https://github.com/daxnet/apworks-core) - Apworks framework supporting .NET Core - [lucabriguglia/OpenCQRS](https://github.com/lucabriguglia/OpenCQRS) - .NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing. - [event-driven-dotnet/EventDriven.CQRS.Abstractions](https://github.com/event-driven-dotnet/EventDriven.CQRS.Abstractions) - Abstractions for implementing Command Query Responsibility Segregation in .NET ## 🚀 Samples - [sample-dotnet-core-cqrs-api](https://github.com/kgrzybek/sample-dotnet-core-cqrs-api) - Sample .NET Core REST API CQRS implementation with raw SQL and DDD using Clean Architecture. - [run-aspnetcore-cqrs](https://github.com/aspnetrun/run-aspnetcore-cqrs) - Real world Enterprise CRM application example of ASP.NET Core + Angular web application. Implemented CQRS Design Pattern for ASP.NET Core + Angular reference application, demonstrating a layered application architecture with DDD - [CQRS](https://github.com/tpierrain/CQRS) - A simple project to explain CQRS during a live coding session at MS experiences'16 - [ChristDDD](https://github.com/anjoy8/ChristDDD) - 🙌 ASP.NET Core 3.1 应用, 包含 DDD、CQRS、EDA 和 ES 事件回溯 - [Reddnet](https://github.com/moritz-mm/Reddnet) - A mini Reddit written in ASP.NET Core 5.0 - [grandnode/grandnode](https://github.com/grandnode/grandnode) - Free and Open Source Ecommerce Shopping Cart solution based on ASP.NET CORE and MongoDB - [smartstore/SmartStoreNET](https://github.com/smartstore/SmartStoreNET) - Open Source ASP.NET MVC Enterprise eCommerce Shopping Cart Solution - [VirtoCommerce/vc-storefront](https://github.com/VirtoCommerce/vc-storefront) - VirtoCommerce Storefront for ASP.NET Core 3.1 repository - [vc-platform](https://github.com/VirtoCommerce/vc-platform) - VirtoCommerce Platform repository - [vc-module-customer](https://github.com/VirtoCommerce/vc-module-customer) - Contacts management module - [nopSolutions/nopCommerce](https://github.com/nopSolutions/nopCommerce) - The most popular open-source eCommerce shopping cart solution based on ASP.NET Core - [trueai-org/module-shop](https://github.com/trueai-org/module-shop) - [gothinkster/aspnetcore-realworld-example-app](https://github.com/gothinkster/aspnetcore-realworld-example-app) - ASP.NET Core backend implementation for RealWorld - [baratgabor/MyWarehouse](https://github.com/baratgabor/MyWarehouse) - Clean Architecture and Domain Driven Design sample project based on C# 9 / .NET 5 / ASP.NET Core 5 / EF Core 5 & Angular 11 with Bootstrap. - [oskardudycz/EventSourcing.NetCore/ECommerce](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/ECommerce) - [oskardudycz/EventSourcing.NetCore/Sample/Tickets](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/Tickets) - [oskardudycz/EventSourcing.NetCore/Sample/MeetingsManagement](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/MeetingsManagement) - [oskardudycz/EventSourcing.NetCore/Sample/Warehouse](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/Warehouse) - [keremvaris/Sennedjem](https://github.com/keremvaris/Sennedjem) - Sennedjem is a software development infrastructure that adopts the CQRS (Command Query Responsibility Segregation) approach and focuses on SOLID principles and Clean Architecture methods. RabbitMq is very skilled in integrating with ElasticSearch etc tools. - [grandnode/grandnode2](https://github.com/grandnode/grandnode2) - Open source, headless, multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, Vue.js. - [MongkonEiadon/VehicleTracker](https://github.com/MongkonEiadon/VehicleTracker) - Vehicle Tracker with Microservice example - [yang-xiaodong/eShopOnContainers](https://github.com/yang-xiaodong/eShopOnContainers) - Replace eShopOnContainers EventBus with CAP - [ddd-by-examples/all-things-cqrs](https://github.com/ddd-by-examples/all-things-cqrs) - Comprehensive guide to a couple of possible ways of synchronizing two states with Spring tools. Synchronization is shown by separating command and queries in a simple CQRS application. - [DarekModzelewski/Contoso-University-DDD](https://github.com/DarekModzelewski/Contoso-University-DDD) - [dimatrubca/book-exchange-app](https://github.com/dimatrubca/book-exchange-app) - BookExchangeApp is a fully functioning application that allows users to exchange books, earn and buy points, and receive recomendations based on the rated books - [Grauenwolf/PackIT](https://github.com/Grauenwolf/PackIT) - [DijanaPenic/DDD-VShop](https://github.com/DijanaPenic/DDD-VShop) - VShop is a sample .NET 6 application built as Modular Monolith with Domain-Driven Design (DDD) approach. Each module is an independent vertical slice with its custom architecture. - [m-jovanovic/event-reminder](https://github.com/m-jovanovic/event-reminder) - .NET Core Web API for seamless event organization with configurable notification systems. - [schananas/reactive-stock-market](https://github.com/schananas/reactive-stock-market) - This project takes you through the design of simple stock market application based on custom reactive CQRS framework - [oskardudycz/EventSourcing.NetCore/CRUDToCQRS](https://github.com/oskardudycz/EventSourcing.NetCore/tree/crud_to_cqrs/Sample/CRUDToCQRS) - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - A full-stack .NET 7 EDA solution - [pdevito3/PeakLimsApi](https://github.com/pdevito3/PeakLimsApi) - A complex DDD based web API to model the accessioning workflow within a LIMS. - [MarkNijhof/Fohjin](https://github.com/MarkNijhof/Fohjin) - This is a personal sand box - [EventStore/training-advanced-dotnet](https://github.com/EventStore/training-advanced-dotnet) - [oskardudycz/EventSourcing.NetCore/Sample/HotelManagement](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/HotelManagement) - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - The main objective of this cloud-native project is to represent the state of the art of a distributed, reliable, and highly scalable system by interpreting the most relevant principles of Reactive Domain Driven Design. - [matt-bentley/DDDMart](https://github.com/matt-bentley/DDDMart) - Sample eCommerce application using Domain Driven Design - [Nairda015/IGroceryStore](https://github.com/Nairda015/IGroceryStore) - IGroceryStore - Loosely coupled monolith - [bitloops/ddd-hexagonal-cqrs-es-eda](https://github.com/bitloops/ddd-hexagonal-cqrs-es-eda) - Complete working example of using Domain Driven Design (DDD), Hexagonal Architecture, CQRS, Event Sourcing (ES), Event Driven Architecture (EDA), Behaviour Driven Development (BDD) using TypeScript and NestJS - [matt-bentley/CleanArchitecture](https://github.com/matt-bentley/CleanArchitecture) - An opinionated ASP.NET Core solution setup for creating web applications using Clean Architecture and Domain-Driven Design principles. - [kalintsenkov/BookStore](https://github.com/kalintsenkov/BookStore) - ASP.NET Core | Domain-Driven Design | Clean Architecture - [event-driven-dotnet/EventDriven.ReferenceArchitecture](https://github.com/event-driven-dotnet/EventDriven.ReferenceArchitecture) ⭐ - Reference architecture for using EventDriven abstractions and libraries for Domain Driven Design (DDD), Command-Query Responsibility Segregation (CQRS) and Event Driven Architecture (EDA). ================================================ FILE: docs/data-driven-design.md ================================================ # Data Driven Design (Data Centric) ## 📕 Articles - [Creating a simple data-driven CRUD microservice](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice) - [Domain-centric Architectures are Cool, but Why ?](https://blog.cancobanoglu.net/2017/05/11/domain-centric-architectures-are-cool-but-why/) - [Domain-centric vs data-centric approaches to software development](https://enterprisecraftsmanship.com/posts/domain-centric-vs-data-centric-approaches/) - [Clean Architecture : Part 1 – Database vs Domain](https://crosp.net/blog/software-architecture/clean-architecture-part-1-databse-vs-domain/) - [Domain Centric Architecture ve Domain Driven Design](http://cagataykiziltan.net/tr/domain-centric-architecture-ve-domain-driven-design/) - [AVOID Entity Services by Focusing on Capabilities](https://codeopinion.com/avoid-entity-services-by-focusing-on-capabilities/) ## 📺 Videos - [Creating N-Tier Applications in C#, Part 1](https://www.pluralsight.com/courses/n-tier-apps-part1) - [Java EE: Design Patterns and Architecture](https://www.linkedin.com/learning/java-ee-design-patterns-and-architecture) - [AVOID Entity Services by Focusing on Capabilities](https://www.youtube.com/watch?v=2gOOstEI4vU) - [Decomposing CRUD to a Task Based UI](https://www.youtube.com/watch?v=DjZepWrAKzM) - [Do you have enough Complexity for a Domain Model (Domain Driven Design)?](https://www.youtube.com/watch?v=L1foFiqopIc) ## 📚 Books - [Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/) ================================================ FILE: docs/database/nosql/cosmosdb.md ================================================ # CosmosDB - [Azure Cosmos DB - A fully-managed, globally distributed NoSQL database service](https://stackshare.io/azure-cosmos-db) - StackShare ## 📕 Articles - [An in-depth study of Cosmos DB and the EF Core 3 to 5 database provider](https://www.thereformedprogrammer.net/an-in-depth-study-of-cosmos-db-and-ef-core-3-0-database-provider/) - [Building a robust CQRS database with EF Core and Cosmos DB](https://www.thereformedprogrammer.net/building-a-robust-cqrs-database-with-ef-core-and-cosmos-db/) - [Cars Island ASP .NET Core API - integration with Azure Cosmos DB - part 3](https://daniel-krzyczkowski.github.io/Cars-Island-ASP-NET-Core-API-Integration-With-Azure-Cosmos-DB/) ## 📺 Videos - [Going Real Time Using Azure CosmosDB and React, by Olena Borzenko](https://www.youtube.com/watch?v=NbkiKdHV0KQ) ================================================ FILE: docs/database/nosql/documentdb.md ================================================ # DocumentDB ## 📕 Articles - [Introducing Amazon DocumentDB (with MongoDB compatibility) global clusters](https://aws.amazon.com/de/blogs/database/introducing-amazon-documentdb-with-mongodb-compatibility-global-clusters) - [Using Azure Document DB in ASP.NET Core](https://dotnetthoughts.net/using-azure-document-db-in-aspnet-core/) - [Using Azure DocumentDB and ASP.NET Core for extreme NoSQL performance](https://auth0.com/blog/documentdb-with-aspnetcore/) ================================================ FILE: docs/database/nosql/mongodb.md ================================================ # MongoDB ## 📘 Resources - [MongoDB Docs](https://docs.mongodb.com/) ## 📕 Articles - [Introduction to MongoDB](https://www.mongodb.com/docs/manual/introduction/) - [Getting Started MongoDB](https://www.mongodb.com/docs/manual/tutorial/getting-started/) - [BSON Types](https://www.mongodb.com/docs/manual/reference/bson-types/) - [How to integrate MongoDB with C#](https://www.code4it.dev/blog/mongodb-introduction-with-csharp) - [MongoDb Architecture](http://horicky.blogspot.com/2012/04/mongodb-architecture.html) - [ASP.NET Core - MongoDB Repository Pattern & Unit Of Work](https://www.brunobrito.net.br/aspnet-core-mongodb-unit-of-work/) - [MongoDB Transactions in .NET Applications](https://exceptionnotfound.net/transactions-in-mongodb-for-net/) - [Dealing with Eventual Consistency and Idempotency in MongoDB projections](https://event-driven.io/en/dealing_with_eventual_consistency_and_idempotency_in_mongodb_projections/) - [MongoDB Shell or Compass query with a GUID](https://blog.georgekosmidis.net/2021/11/29/mongodb-shell-or-compass-query-with-a-guid/) - [Introducing the MongoDB Analyzer for .NET](https://www.mongodb.com/developer/article/introducing-mongodb-analyzer-dotnet/) - [Getting Started MongoDB in .NET Core with Examples](https://www.thecodebuzz.com/mongodb-c-driver-net-core-examples-getting-started/) - [MongoDB – Add/Update field to document using BulkWriteAsync](https://www.thecodebuzz.com/mongodb-add-update-field-to-document-bulkwriteasync-asynchronous/) - [MongoDB – Add/Update new field to document using UpdateOne – II](https://www.thecodebuzz.com/mongodb-add-update-field-to-document-in-mongodb-collection/) - [MongoDB – Add new field to document using UpdateMany -I](https://www.thecodebuzz.com/mongodb-add-new-field-every-document-in-mongodb-collection/) - [NoSQL – MongoDB Repository Implementation in .NET Core with Unit Testing example](https://www.thecodebuzz.com/mongodb-repository-implementation-unit-testing-net-core-example/) - [Unit Testing and Mock MongoDB DbContext in ASP.NET Core](https://www.thecodebuzz.com/unit-testing-mocking-dbcontext-mongo-db-asp-net-core/) - [Unit Testing and Mocking MongoDB Extension Method in ASP.NET Core](https://www.thecodebuzz.com/mongodb-driver-mocking-unit-testing-iasynccursor-async-method-part1/) - [MongoDB Naming Conventions and Standards](https://www.thecodebuzz.com/mongo-db-naming-conventions-standards-guidelines/) - [MongoDB Query for records where the field is null or not set](https://www.thecodebuzz.com/mongodb-query-field-is-null-or-not-set-mongo-shell-compass/) - [MongoDB create a collection inside a Transaction – Guidelines](https://www.thecodebuzz.com/mongodb-create-a-collection-inside-a-transaction-create-index/) - [MongoDB Distributed Transactions Guidelines](https://www.thecodebuzz.com/mongodb-distributed-transactions-guidelines/) - [Create MongoDB indexes in C# driver](https://www.thecodebuzz.com/mongodb-unique-index-compound-index-csharp-driver/) - [Create MongoDB indexes in C#.NET – II](https://www.thecodebuzz.com/create-mongodb-indexes-csharp-net/) - [MongoDB Indexing Best Practices](https://www.thecodebuzz.com/mongodb-indexes-performance-guidelines-and-best-practices/) - [MongoDB Create Indexing using Mongo Compass](https://www.thecodebuzz.com/mongodb-create-indexes-mongo-compass-ui/) - [MongoDB Distributed Transaction with C# .NET – Guidelines](https://www.thecodebuzz.com/mongodb-distributed-transaction-acid-csharp-driver-aspnetcore/) - [MongoDB using _id Field – Guidelines](https://www.thecodebuzz.com/mongodb-id-field-security-best-practices-guidelines/) - [MongoDB Driver Writing](https://mongodb.github.io/mongo-csharp-driver/2.7/reference/driver/crud/writing/) - [MongoDB Driver Reading](https://mongodb.github.io/mongo-csharp-driver/2.7/reference/driver/crud/reading/) - [MongoDB Driver Linq](https://mongodb.github.io/mongo-csharp-driver/2.7/reference/driver/crud/linq/) - [MongoDB Driver Session and Transaction](https://mongodb.github.io/mongo-csharp-driver/2.7/reference/driver/crud/sessions_and_transactions/) - [MongoDB Bulk operations with the C# driver](https://fgambarino.com/c-sharp-mongo-bulk-write/) - [Setting up MongoDB to Use Standard GUIDs in C#](https://kevsoft.net/2022/02/18/setting-up-mongodb-to-use-standard-guids-in-csharp.html) - [Storing GUIDs as strings in MongoDB with C#](https://kevsoft.net/2020/06/25/storing-guids-as-strings-in-mongodb-with-csharp.html) - [DDD Values Types in C# with MongoDB](https://kevsoft.net/2022/01/03/ddd-values-types-in-csharp-with-mongodb.html) - [How do I detect whether a mongodb serializer is already registered?](https://stackoverflow.com/questions/21386347/how-do-i-detect-whether-a-mongodb-serializer-is-already-registered) - [What is new way of setting DateTimeSerializationOptions.Defaults in mongodb c# driver?](https://stackoverflow.com/questions/16185262/what-is-new-way-of-setting-datetimeserializationoptions-defaults-in-mongodb-c-sh) - [Serialization in MongoDB Driver C#](http://mongodb.github.io/mongo-csharp-driver/2.18/reference/bson/serialization/) - [GuidSerializer changes in MongoDB Driver C# ](http://mongodb.github.io/mongo-csharp-driver/2.18/reference/bson/guidserialization/serializerchanges/guidserializerchanges/) - [Implementing CRUD operations with ASP.NET Core Web API and Mongo DB](https://dotnetthoughts.net/implementing-crud-operations-with-webapi-and-mongodb/) ⭐ - [How to Migrate Relational Database to MongoDB?: Made Easy](https://hevodata.com/learn/relational-database-to-mongodb/) - [MongoDB vs. Redis: Which Database Should You Use?](https://www.integrate.io/blog/mongodb-vs-redis/) - [MongoDB vs. Redis Comparison](https://www.mongodb.com/compare/mongodb-vs-redis) - [Trying out MongoDB with EF Core using Testcontainers](https://devblogs.microsoft.com/dotnet/efcore-mongodb/) - [This Is How Quora Shards MySQL to Handle 13+ Terabytes](https://newsletter.systemdesign.one/p/mysql-sharding) - [Sharding in MongoDB](https://www.mongodb.com/docs/manual/sharding/) - [Replication in MongoDB](https://www.mongodb.com/docs/manual/replication/) - [Database Sharding: Concepts and Examples](https://www.mongodb.com/resources/products/capabilities/database-sharding-explained) - [Database Scaling](https://www.mongodb.com/resources/basics/scaling) - [MongoDB Replication](https://www.mongodb.com/resources/products/capabilities/replication) - [The only local MongoDB replica set with Docker Compose guide you’ll ever need!](https://medium.com/workleap/the-only-local-mongodb-replica-set-with-docker-compose-guide-youll-ever-need-2f0b74dd8384) - [Deploy a MongoDB Cluster with Docker](https://dev.to/mattdark/deploy-a-mongodb-cluster-with-docker-1fal) ## 📺 Videos - [MongoDB In 30 Minutes](https://www.youtube.com/watch?v=pWbMrx5rVBE) - [More Flexibility?! Sharding Gets Even Easier with MongoDB 4.4](https://www.youtube.com/watch?v=wGgMnJQunEc) - [Exploring the replication and #sharding in #MongoDB - #Database Tutorial](https://www.youtube.com/watch?v=oH-gQ4JdXQc) - [Sharding a MongoDB Collection](https://www.youtube.com/watch?v=Rwg26U0Zs1o) - [Learn MongoDB Playlist - Just me and Opensource](https://www.youtube.com/playlist?list=PL34sAs7_26wPvZJqUJhjyNtm7UedWR8Ps) - [MongoDB with C# Beginner's Tutorial Playlist - Coding Droplets](https://www.youtube.com/playlist?list=PLzewa6pjbr3JgaEaUDXWXm_bgjtQPjzFE) - [Data Modeling with MongoDB](https://www.youtube.com/watch?v=3GHZd0zv170) - [A Complete Methodology of Data Modeling for MongoDB](https://www.youtube.com/watch?v=DUCvYbcgGsQ) - [What's New in MongoDB 6.0](https://www.youtube.com/watch?v=ShDocHg32kU) - [Moving from RDBMS to MongoDB - Unlearn your biggest learnings!](https://www.youtube.com/watch?v=XTAZ3m_hqWs) - [What's new in MongoDB](https://www.mongodb.com/presentations/what-s-new-in-mongo-db-english) - [Replay Episode 3: Live migration and benefits of moving from a relational database to MongoDB](https://www.mongodb.com/presentations/replay-episode-3-live-migration-and-benefits-of-migration) - [Replay Episode 2: How to migrate from a relational database to MongoDB?](https://www.mongodb.com/presentations/replay-episode-2-how-to-migrate-from-a-relational-database-to-mongodb) - [Replay Episode 1: Why migrate from a relational database to MongoDB?](https://www.mongodb.com/presentations/replay-episode-1-why-migrate-from-a-relational-database-to-mongodb) - [The future of E-commerce: Modernisation with MongoDB](https://www.mongodb.com/presentations/the-future-of-e-commerce-modernisation-with-mongodb) - [Modernisation Webinar: Moving Workloads from Relational Databases to MongoDB's Document Model](https://www.mongodb.com/presentation/modernisation-webinar-english) - [Data Modeling with MongoDB](https://www.mongodb.com/presentation/data-modelling-with-mongodb) - [Query Optimization with MongoDB](https://www.mongodb.com/presentation/query-optimisation-with-mongodb) - [Let’S Explain Aggregations](https://www.mongodb.com/presentations/lets-explain-aggregations-amer) - [How MongoDB uses MongoDB at Scale](https://www.mongodb.com/presentations/how-mongodb-uses-mongodb-at-scale) - [Best Practices for Migrating from RDBMS to MongoDB Webinar](https://www.mongodb.com/presentations/migrating-from-rdbms-to-mongodb-webinar-hk) - [Advanced Schema Design Patterns](https://www.youtube.com/watch?v=bxw1AkH2aM4) - [Making MongoDB Easy for Entity Framework Users with MongoFramework](https://www.youtube.com/watch?v=qsFyJSCz50Q) - [.NET Data Community Standup - Introducing the MongoDB provider for EF Core](https://www.youtube.com/watch?v=Zat-ferrjro) - [Deploy a MongoDB Cluster with Docker](https://dev.to/mattdark/deploy-a-mongodb-cluster-with-docker-1fal) - [Deploy a MongoDB Cluster With Docker Compose](https://dev.to/mattdark/deploy-a-mongodb-cluster-with-docker-compose-4ieo) ## Courses - [MongoDB Basics](https://university.mongodb.com/courses/M001/about) - [MongoDB for SQL Pros](https://university.mongodb.com/courses/M100/about) - [The MongoDB Aggregation Framework](https://university.mongodb.com/courses/M121/about) - [MongoDB Performance](https://university.mongodb.com/courses/M201/about) - [MongoDB for .NET Developers](https://university.mongodb.com/courses/M220N/about) - [Data Modeling](https://university.mongodb.com/courses/M320/about) ## 🚀 Samples - [dj-nitehawk/MongoWebApiStarter](https://github.com/dj-nitehawk/MongoWebApiStarter) - A full-featured starter template for `dotnet new` to quickly scaffold an Asp.Net 6 Web-Api project with MongoDB as the data store. - [anuraj/BookStoreApi](https://github.com/anuraj/BookStoreApi) - [brunobritodev/MongoDB-RepositoryUoWPatterns](https://github.com/brunobritodev/MongoDB-RepositoryUoWPatterns) - [minhhungit/mongodb-cluster-docker-compose](https://github.com/minhhungit/mongodb-cluster-docker-compose) - docker-compose for mongodb cluster sharded with replication ## Library - [TurnerSoftware/MongoFramework](https://github.com/TurnerSoftware/MongoFramework) - An "Entity Framework"-like interface for MongoDB - [Mongo2Go/Mongo2Go](https://github.com/Mongo2Go/Mongo2Go) - MongoDB for integration tests (.NET Core 3.0 and .NET 5.0) - [dj-nitehawk/MongoDB.Entities](https://github.com/dj-nitehawk/MongoDB.Entities) - A data access library for MongoDB with an elegant api, LINQ support and built-in entity relationship management - [dj-nitehawk/MongoDB-Entities-Repository-Pattern](https://github.com/dj-nitehawk/MongoDB-Entities-Repository-Pattern) - Example project showcasing how to use the repository pattern with the MongoDB.Entities data access library - [alexandre-spieser/mongodb-generic-repository](https://github.com/alexandre-spieser/mongodb-generic-repository) - An example of generic repository implementation using the MongoDB C# Sharp 2.0 driver (async) - [alexandre-spieser/AspNetCore.Identity.MongoDbCore](https://github.com/alexandre-spieser/AspNetCore.Identity.MongoDbCore) - A MongoDb UserStore and RoleStore adapter for Microsoft.AspNetCore.Identity 2.2. Allows you to use MongoDb instead of SQL server with Microsoft.AspNetCore.Identity 2.2. (not Identity 3.0) - [Parkbee/mongo-db](https://github.com/Parkbee/mongo-db) - This repository is intended to be a location for all ParkBee MongoDB utilities - [mongodb/mongo-efcore-provider](https://github.com/mongodb/mongo-efcore-provider) - MongoDB Entity Framework Core Provider ================================================ FILE: docs/database/nosql/nosql.md ================================================ # NoSQL ## 📘 Resources - [donnemartin/system-design-primer#nosql](https://github.com/donnemartin/system-design-primer#nosql) ## 📕 Articles - [Relational vs. NoSQL data](https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/relational-vs-nosql-data) - [MongoDB vs SQL server](https://www.educba.com/mongodb-vs-sql-server/) - [NoSQL vs SQL Databases](https://www.mongodb.com/nosql-explained/nosql-vs-sql) - [Data Types: Structured Data Vs Unstructured Data Vs Semi-Structured Data](https://k21academy.com/microsoft-azure/dp-900/structured-data-vs-unstructured-data-vs-semi-structured-data/) - [NOSQL vs SQL. Key differences and when to choose each](https://pandorafms.com/blog/nosql-vs-sql-key-differences/) - [How to choose between SQL and NoSQL databases](https://www.red-gate.com/simple-talk/databases/nosql/how-to-choose-between-sql-and-nosql-databases/) - [Scalability, Availability & Stability Patterns](https://slideshare.net/jboner/scalability-availability-stability-patterns/) - [Database Scalability](http://horicky.blogspot.com/2008/03/database-scalability.html) - [NOSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html) - [SQL vs NoSQL: The Differences](https://www.sitepoint.com/sql-vs-nosql-differences/) - [SQL & NOSQL: A BRIEF HISTORY](https://blog.grio.com/2015/11/sql-nosql-a-brief-history.html) - [SQL vs NoSQL](https://academind.com/tutorials/sql-vs-nosql) - [How to choose the right database for your service](https://medium.com/wix-engineering/how-to-choose-the-right-database-for-your-service-97b1670c5632) - [5 Database technologies used by 2000 Wix microservices](https://medium.com/wix-engineering/5-database-technologies-used-by-2000-wix-microservices-e4769638b8c3) ## 📺 Videos - [Google I/O 2012 - SQL vs NoSQL: Battle of the Backends](https://www.youtube.com/watch?v=rRoy6I4gKWU) - [SQL vs NoSQL or MySQL vs MongoDB](https://www.youtube.com/watch?v=ZS_kXvOeQ5Y) - [GOTO 2012 • Introduction to NoSQL • Martin Fowler](https://www.youtube.com/watch?v=qI_g07C_Q5I) - [Say YES! to NoSQL: A Guide on When to Ditch Relational Databases - Adrienne Tacke](https://www.youtube.com/watch?v=HVs5IISO9yg) - [Migrating from SQL to NoSQL with .NET and Dapper, by Matthew Groves](https://www.youtube.com/watch?v=ltXWsuqg_mo) - [Introduction To NoSQL Databases](https://www.youtube.com/watch?v=dJVcKWFotbo) - [What is Database Sharding?](https://www.youtube.com/watch?v=5faMjKuB9bc) - [Database Design Tips | Choosing the Best Database in a System Design Interview](https://www.youtube.com/watch?v=cODCpXtPHbQ) - [SQL vs NoSQL or MySQL vs MongoDB](https://www.youtube.com/watch?v=ZS_kXvOeQ5Y) - [Introduction to NoSQL Databases](https://www.youtube.com/watch?v=_vSQKbCEXTM) - [SQL vs NoSQL - Difference B/W SQL & NoSQL Databases | MySQL vs MongoDB Tutorial | Edureka](https://www.youtube.com/watch?v=QwevGzVu_zk) - [Introduction to NoSQL databases](https://www.youtube.com/watch?v=xQnIN9bW0og) - [Migrating from SQL to NoSQL with .NET and Dapper, by Matthew Groves](https://www.youtube.com/watch?v=ltXWsuqg_mo) - [An Introduction To NoSQL Databases](https://www.youtube.com/watch?v=uD3p_rZPBUQ) - [Learn System design : Distributed datastores | RDBMS scaling problems | CAP theorem](https://www.youtube.com/watch?v=l9JSK9OBzA4) - [Horizontal Scaling in Azure SQL Database](https://www.youtube.com/watch?v=ISs__Ub9oh8) - [Introduction to NoSQL • Martin Fowler • GOTO 2012](https://www.youtube.com/watch?v=qI_g07C_Q5I) - [Why and how NoSQL databases can scale "infinitely" | Understanding NoSQL and partitioning](https://www.youtube.com/watch?v=Q-lHpZBh3lQ) - [Sql vs NoSql | Relational and non relational databases](https://www.youtube.com/watch?v=3CzxJ9vb_QQ) ================================================ FILE: docs/database/nosql/ravendb.md ================================================ # RavenDB ## 📘 Resources - [RavenDB - A NoSQL Database that's fully transactional](https://stackshare.io/raven-db) - StackShare ================================================ FILE: docs/database/relational/postgres.md ================================================ # Postgresql ## References - [PostgreSQL Documentation](https://www.postgresql.org/docs/current/) ## 📕 Articles - [PostgreSQL Vs. MongoDB](https://blog.panoply.io/postgresql-vs-mongodb) - [Npgsql Entity Framework Core Provider](https://www.npgsql.org/efcore/index.html) - [Using JSONB in PostgreSQL: How to Effectively Store & Index JSON Data in PostgreSQL](https://scalegrid.io/blog/using-jsonb-in-postgresql-how-to-effectively-store-index-json-data-in-postgresql/) - [JSON Types](https://www.postgresql.org/docs/13/datatype-json.html) - [Faster Operations with the JSONB Data Type in PostgreSQL](https://www.compose.com/articles/faster-operations-with-the-jsonb-data-type-in-postgresql/) - [Querying JSON (JSONB) data types in PostgreSQL](http://www.silota.com/docs/recipes/sql-postgres-json-data-types.html) - [Unlocking the Full Potential Of PostgreSQL® JSON](https://www.instaclustr.com/blog/postgresql-json/) - [How to choose the right database for your service](https://medium.com/wix-engineering/how-to-choose-the-right-database-for-your-service-97b1670c5632) - [5 Database technologies used by 2000 Wix microservices](https://medium.com/wix-engineering/5-database-technologies-used-by-2000-wix-microservices-e4769638b8c3) ## 📹 Videos - [Integrating ASP.NET Core API with Postgres & OData in Azure](https://www.youtube.com/watch?v=MoDJnEwkYOE) - [ASP.NET Core, C#, EF Core, PostgreSQL, WSL2 - PostreSQL Setup - Tricking Library Ep62](https://www.youtube.com/watch?v=qWfavvrhrfk) - [Comparison of PostgreSQL and MongoDB](https://www.youtube.com/watch?v=eM7hzKwvTq8) - [Learn PostgreSQL Tutorial - Full Course for Beginners](https://www.youtube.com/watch?v=qw--VYLpxG4) - [PostgresSQL Playlist - Hussein Nasser](https://www.youtube.com/playlist?list=PLQnljOFTspQWGrOqslniFlRcwxyY94cjj) - [Scaling PostgreSQL: How to never shard again](https://www.youtube.com/watch?v=U60z_UTMjAk) - [PostgreSQL Tutorial for Beginners](https://www.youtube.com/watch?v=SpfIwlAYaKk) ## 📦 Libraries - [JasperFx/marten](https://github.com/JasperFx/marten) - .NET Transactional Document DB and Event Store on PostgreSQL - [zombodb/zombodb](https://github.com/zombodb/zombodb) - Making Postgres and Elasticsearch work together like it's 2021 - [jbogard/Respawn](https://github.com/jbogard/Respawn) - Intelligent database cleaner for integration tests - [npgsql/efcore.pg](https://github.com/npgsql/efcore.pg) - Entity Framework Core provider for PostgreSQL - [efcore/EFCore.NamingConventions](https://github.com/efcore/EFCore.NamingConventions) - Entity Framework Core plugin to apply naming conventions to table and column names (e.g. snake_case) ================================================ FILE: docs/database/relational/relational-database.md ================================================ # Relational Database ### 📕Articles - [How to choose the right database for your service](https://medium.com/wix-engineering/how-to-choose-the-right-database-for-your-service-97b1670c5632) - [5 Database technologies used by 2000 Wix microservices](https://medium.com/wix-engineering/5-database-technologies-used-by-2000-wix-microservices-e4769638b8c3) - [ACID Transactions](https://blog.algomaster.io/p/ecae03ba-1930-42ef-8796-83e2fa818989) - [What Are the Types of Indexes in a Relational Database?](https://vertabelo.com/blog/database-index-types/) - [Database Indexes: A detailed guide](https://blog.algomaster.io/p/a-detailed-guide-on-database-indexes) - [What is a relational database? A deep dive](https://www.educative.io/blog/relational-database-deep-dive) ================================================ FILE: docs/database/relational/sql.md ================================================ # SQL ## Articles - [SQL Query Optimization: How to Tune Performance of SQL Queries](https://blog.devart.com/how-to-optimize-sql-query.html) - [SQL Server Execution Plans](https://blog.devart.com/sql-server-execution-plans.html) - [Using the SQL Execution Plan for Query Performance Tuning](https://www.sqlshack.com/using-the-sql-execution-plan-for-query-performance-tuning/) - [How to write subqueries in SQL](https://www.sqlshack.com/how-to-write-subqueries-in-sql/) - [SQL Server Common Table Expressions (CTE)](https://www.sqlshack.com/sql-server-common-table-expressions-cte/) - [SQL Server indexes – series intro](https://www.sqlshack.com/sql-server-indexes-series-intro/) - [SQL index overview and strategy](https://www.sqlshack.com/sql-index-overview-and-strategy/) - [SQL Server table structure overview](https://www.sqlshack.com/sql-server-table-structure-overview/) - [SQL Server index design basics and guidelines](https://www.sqlshack.com/sql-server-index-design-basics-and-guidelines/) - [SQL Server index operations](https://www.sqlshack.com/sql-server-index-operations/) - [Designing effective SQL Server clustered indexes](https://www.sqlshack.com/designing-effective-sql-server-clustered-indexes/) - [Designing effective SQL Server non-clustered indexes](https://www.sqlshack.com/designing-effective-sql-server-non-clustered-indexes/) - [Working with different SQL Server indexes types](https://www.sqlshack.com/working-with-different-sql-server-indexes-types/) - [Tracing and tuning queries using SQL Server indexes](https://www.sqlshack.com/tracing-and-tuning-queries-using-sql-server-indexes/) - [Gathering SQL Server indexes statistics and usage information](https://www.sqlshack.com/gathering-sql-server-indexes-statistics-and-usage-information/) - [Maintaining SQL Server indexes](https://www.sqlshack.com/maintaining-sql-server-indexes/) - [SQL WHILE loop with simple examples](https://www.sqlshack.com/sql-while-loop-with-simple-examples/) - [Overview of SQL RANK functions](https://www.sqlshack.com/overview-of-sql-rank-functions/) - [SELECT INTO TEMP TABLE statement in SQL Server](https://www.sqlshack.com/select-into-temp-table-statement-in-sql-server/) - [SQL PARTITION BY Clause overview](https://www.sqlshack.com/sql-partition-by-clause-overview/) - [SQL Server table hints – WITH (NOLOCK) best practices](https://www.sqlshack.com/understanding-impact-clr-strict-security-configuration-setting-sql-server-2017/) - [CASE statement in SQL](https://www.sqlshack.com/case-statement-in-sql/) - [SQL Variables: Basics and usage](https://www.sqlshack.com/sql-variables-basics-and-usage/) - [SQL Convert Date functions and formats](https://www.sqlshack.com/sql-convert-date-functions-and-formats/) - [Query optimization techniques in SQL Server: tips and tricks](https://www.sqlshack.com/query-optimization-techniques-in-sql-server-tips-and-tricks/) - [How to identify slow running queries in SQL Server](https://www.sqlshack.com/how-to-identify-slow-running-queries-in-sql-server/) - [All about locking in SQL Server](https://www.sqlshack.com/locking-sql-server/) - [SQL Server stored procedures for beginners](https://www.sqlshack.com/sql-server-stored-procedures-for-beginners/) - [What is the difference between Clustered and Non-Clustered Indexes in SQL Server?](https://www.sqlshack.com/what-is-the-difference-between-clustered-and-non-clustered-indexes-in-sql-server/) - [Difference between Clustered and Non-clustered index](https://www.geeksforgeeks.org/difference-between-clustered-and-non-clustered-index/) - [An overview of the SQL GROUP BY clause](https://www.sqlshack.com/an-overview-of-the-sql-group-by-clause/) - [Learn SQL: Aggregate Functions](https://www.sqlshack.com/learn-sql-aggregate-functions/) - [Learn SQL: INNER JOIN vs LEFT JOIN](https://www.sqlshack.com/learn-sql-inner-join-vs-left-join/) - [A step-by-step walkthrough of SQL Inner Join](https://www.sqlshack.com/a-step-by-step-walkthrough-of-sql-inner-join/) - [Learn SQL: SQL Server Cursors](https://www.sqlshack.com/learn-sql-sql-server-cursors/) - [SQL OUTER JOIN overview and examples](https://www.sqlshack.com/sql-outer-join-overview-and-examples/) - [Learn SQL: Types of relations](https://www.sqlshack.com/learn-sql-types-of-relations/) - [Learn SQL: Join multiple tables](https://www.sqlshack.com/learn-sql-join-multiple-tables/) - [Learn SQL: How to Write a Complex SELECT Query](https://www.sqlshack.com/learn-sql-how-to-write-a-complex-select-query/) - [The difference between WHERE and HAVING clause in SQL](https://www.sqlshack.com/learn-sql-sql-data-types/) - [Learn SQL: SQL Data Types](https://www.sqlshack.com/learn-sql-sql-data-types/) - [Learn SQL: User-Defined Functions](https://www.sqlshack.com/learn-sql-user-defined-functions/) - [Learn SQL: User-Defined Stored Procedures](https://www.sqlshack.com/learn-sql-user-defined-stored-procedures/) - [Learn SQL: SQL Views](https://www.sqlshack.com/learn-sql-sql-views/) - [Learn SQL: Non-Equi Joins in SQL Server](https://www.sqlshack.com/learn-sql-non-equi-joins-in-sql-server/) - [SQL Server CTE](https://www.sqlservertutorial.net/sql-server-basics/sql-server-cte/) - [SQL Server GROUP BY](https://www.sqlservertutorial.net/sql-server-basics/sql-server-group-by/) - [SQL Server Aggregate Functions](https://www.sqlservertutorial.net/sql-server-aggregate-functions/) - [SQL Server Joins](https://www.sqlservertutorial.net/sql-server-basics/sql-server-joins/) - [SQL Server Left Join](https://www.sqlservertutorial.net/sql-server-basics/sql-server-left-join/) - [SQL Server Subquery](https://www.sqlservertutorial.net/sql-server-basics/sql-server-subquery/) - [SQL Server HAVING](https://www.sqlservertutorial.net/sql-server-basics/sql-server-having/) - [SQL Server RANK Function](https://www.sqlservertutorial.net/sql-server-window-functions/sql-server-rank-function/) - [SQL Server ROW_NUMBER Function](https://www.sqlservertutorial.net/sql-server-window-functions/sql-server-row_number-function/) - [A Basic Guide to SQL Server Stored Procedures](https://www.sqlservertutorial.net/sql-server-stored-procedures/basic-sql-server-stored-procedures/) - [SQL Server Clustered Indexes](https://www.sqlservertutorial.net/sql-server-indexes/sql-server-clustered-indexes/) - [SQL Server CREATE INDEX](https://www.sqlservertutorial.net/sql-server-indexes/sql-server-create-index/) - [SQL Server Index Fragmentation Overview](https://www.mssqltips.com/sqlservertip/4331/sql-server-index-fragmentation-overview/) ================================================ FILE: docs/database/replication.md ================================================ # Replication ## Articles - [MongoDB Replication](https://www.mongodb.com/resources/products/capabilities/replication) - [Replication in MongoDB](https://www.mongodb.com/docs/manual/replication/) - [Three Member Replica Sets](https://www.mongodb.com/docs/manual/core/replica-set-architecture-three-members/) - [Replica Set Members](https://www.mongodb.com/docs/manual/core/replica-set-members/) - [Replica Set Primary](https://www.mongodb.com/docs/manual/core/replica-set-primary/) - [Replica Set Secondary Members](https://www.mongodb.com/docs/manual/core/replica-set-secondary/) - [Read Preference](https://www.mongodb.com/docs/manual/core/read-preference/) - [Replica Set Elections](https://www.mongodb.com/docs/manual/core/replica-set-elections/) - [Write Concern for Replica Sets](https://www.mongodb.com/docs/manual/core/replica-set-write-concern/) - [Read Preference Use Cases](https://www.mongodb.com/docs/manual/core/read-preference-use-cases/) - [Deploy a Self-Managed Replica Set](https://www.mongodb.com/docs/manual/tutorial/deploy-replica-set/) - [Convert a Standalone Self-Managed mongod to a Replica Set](https://www.mongodb.com/docs/manual/tutorial/convert-standalone-to-replica-set/#std-label-server-replica-set-deploy-convert) - [Connect to a Deployment](https://www.mongodb.com/docs/mongodb-shell/connect/) - [The only local MongoDB replica set with Docker Compose guide you’ll ever need!](https://medium.com/workleap/the-only-local-mongodb-replica-set-with-docker-compose-guide-youll-ever-need-2f0b74dd8384) - [Deploy a MongoDB Cluster with Docker](https://dev.to/mattdark/deploy-a-mongodb-cluster-with-docker-1fal) ================================================ FILE: docs/database/sharding.md ================================================ # Sharding ## 📘 Resources - [donnemartin/system-design-primer#sharding](https://github.com/donnemartin/system-design-primer#sharding) ## 📕 Articles - [Sharding pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/sharding) - [What Exactly Is Database Sharding?](https://betterprogramming.pub/what-exactly-is-database-sharding-ca618a2cbb9a) - [Introducing Consistent Hashing](https://itnext.io/introducing-consistent-hashing-9a289769052e) - [A Guide to Consistent Hashing](https://www.toptal.com/big-data/consistent-hashing) - [Scale your app better with Scaling Cube](https://itnext.io/scale-your-app-better-with-scaling-cube-1860930c4d57) - [How to use Database Sharding and Scale an ASP.NET Core Microservice Architecture](https://itnext.io/how-to-use-database-sharding-and-scale-an-asp-net-core-microservice-architecture-22c24916590f) - [How to Scale an ASP.NET Core Microservice and Sharded Database. Load Test with JMeter](https://itnext.io/how-to-scale-an-asp-net-core-microservice-and-sharded-database-load-test-with-jmeter-1a8c7292e7e3) - [An Unorthodox Approach To Database Design : The Coming Of The Shard](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html) - [Database Sharding](https://medium.com/system-design-blog/database-sharding-69f3f4bd96db) - [What Is Sharding?](https://hazelcast.com/glossary/sharding) - [Database Sharding Explained- 2021 Database Scaling Tutorial](https://dev.to/renaissanceengineer/database-sharding-explained-2021-database-scaling-tutorial-5cej) - [How Sharding Works](https://medium.com/@jeeyoungk/how-sharding-works-b4dec46b3f6) - [Data partitioning guidance](https://docs.microsoft.com/en-us/azure/architecture/best-practices/data-partitioning) - [Data partitioning strategies](https://docs.microsoft.com/en-us/azure/architecture/best-practices/data-partitioning-strategies) - [Shared Database between Services? Maybe!](https://codeopinion.com/shared-database-between-services-maybe/) - [How sharding a database can make it faster](https://stackoverflow.blog/2022/03/14/how-sharding-a-database-can-make-it-faster/) - [All Things Sharding: Techniques and Real-Life Examples in NoSQL Data Storage Systems](https://kousiknath.medium.com/all-things-sharding-techniques-and-real-life-examples-in-nosql-data-storage-systems-3e8beb98830a) - [This Is How Quora Shards MySQL to Handle 13+ Terabytes](https://newsletter.systemdesign.one/p/mysql-sharding) - [Sharding in MongoDB](https://www.mongodb.com/docs/manual/sharding/) - [Database Sharding: Concepts and Examples](https://www.mongodb.com/resources/products/capabilities/database-sharding-explained) - [Database Scaling](https://www.mongodb.com/resources/basics/scaling) - [MongoDB Sharding - How to Deploy a Sharded Cluster](https://phoenixnap.com/kb/mongodb-sharding) ## 📺 Videos - [What is Database Sharding?](https://www.youtube.com/watch?v=5faMjKuB9bc) - [What is Database Sharding? - Be A Better Dev](https://www.youtube.com/watch?v=hdxdhCpgYo8) - [More Flexibility?! Sharding Gets Even Easier with MongoDB 4.4](https://www.youtube.com/watch?v=wGgMnJQunEc) - [Key based Sharding | Shard Key | Hash function | Advantages and disadvantages | 2021](https://www.youtube.com/watch?v=arUpleGFdt4&t=181s) - [Range based sharding | Advantages and disadvantages | Hotspots | Use Cases](https://www.youtube.com/watch?v=avepna2q9w0) - [What is Database Sharding, Logical and Physical Shards, Dynamic vs Algorithmic Sharding | 2021](https://www.youtube.com/watch?v=YCb-tDQWrXk) - [Directory based sharding](https://www.youtube.com/watch?v=62adurZ_Muw) - [Sharding & Database Partitioning | System Design Basics](https://www.youtube.com/watch?v=RynPj8C0BXA) - [When should you shard your database?](https://www.youtube.com/watch?v=iHNovZUZM3A) - [What is the difference between Partitioning and Sharding db tables?](https://www.youtube.com/watch?v=AxpsOLLQt3o) - [Best Practices Working with Billion-row Tables in Databases](https://www.youtube.com/watch?v=wj7KEMEkMUE) - [System Design - Sharding | Data Partitioning](https://www.youtube.com/watch?v=yNrVexoEnFM) - [Learn System design : Distributed datastores | RDBMS scaling problems | CAP theorem](https://www.youtube.com/watch?v=l9JSK9OBzA4) - [Introduction to Sharding](https://www.youtube.com/watch?v=4upppuW7lGE) - [Horizontal vs Vertical Database Partitioning](https://www.youtube.com/watch?v=QA25cMWp9Tk) - [Scaling Databases - Web Development](https://www.youtube.com/watch?v=dkhOZOmV7Fo) - [Python CRUD App hits 2 million rows, Should I Shard my Database?](https://www.youtube.com/watch?v=aXD4tWbkoJo) - [Database Sharding Explained | Database Partitioning | Database Scaling Tutorial](https://www.youtube.com/watch?v=VhsMXWb5Eew) - [Scaling MongoDB Best Practices for Sharding, Indexing and Performance Isolation](https://www.youtube.com/watch?v=ZcAErl9Ir6Q) - [Shared Database between Services? Maybe!](https://www.youtube.com/watch?v=vwTwkPUcwNM) - [What is Database Sharding?](https://www.youtube.com/watch?v=XP98YCr-iXQ) ================================================ FILE: docs/design-best-practices/12-factor.md ================================================ # 12 Factor ## 📕 Articles - [The Twelve-Factor App](https://12factor.net/) - [Building Twelve Factor Apps with .Net Core](https://www.ben-morris.com/building-twelve-factor-apps-with-net-core/) ## 📺 Videos - [ASP.NET Community Standup - The 12 Factor App](https://www.youtube.com/watch?v=xRlDuXJ3t08) ================================================ FILE: docs/design-best-practices/design-best-practices.md ================================================ # Design Best Practices ## 📘 Resources - [hassanhabib/The-Standard](https://github.com/hassanhabib/The-Standard) - [hassanhabib/CSharpCodingStandard](https://github.com/hassanhabib/CSharpCodingStandard) - This is the Standard for C# Programming language - [donnemartin/system-design-primer](https://github.com/donnemartin/system-design-primer) - Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. ## 📕 Articles - [Static methods considered evil?](https://enterprisecraftsmanship.com/posts/static-methods-evil/) - [Design Best Practices In .NET C#](https://levelup.gitconnected.com/design-best-practices-in-net-c-8e37b7c3500a) ## 📺 Videos - [TS001.1: Common Questions About The Standard](https://www.youtube.com/watch?v=Au7G_y4BkbY) - [The Power of Composition - Scott Wlaschin - NDC Oslo 2020](https://www.youtube.com/watch?v=rCKPgu4DvcE) - [Scott Wlaschin — Designing with capabilities](https://www.youtube.com/watch?v=RqlnWv6NZos) ================================================ FILE: docs/design-best-practices/thin-controllers.md ================================================ # Thin Controllers ## 📕 Articles - [Put your controllers on a diet: GETs and queries](https://lostechies.com/jimmybogard/2013/10/29/put-your-controllers-on-a-diet-gets-and-queries/) - [Put your controllers on a diet: POSTs and commands](https://lostechies.com/jimmybogard/2013/12/19/put-your-controllers-on-a-diet-posts-and-commands/) - [CQRS with MediatR and AutoMapper](https://lostechies.com/jimmybogard/2015/05/05/cqrs-with-mediatr-and-automapper/) - [Thin Controllers with CQRS and MediatR](https://codeopinion.com/thin-controllers-cqrs-mediatr/) - [Moving from Controllers and Actions to Endpoints with MediatR](https://ardalis.com/moving-from-controllers-and-actions-to-endpoints-with-mediatr/) - [MVC Controllers are Dinosaurs - Embrace API Endpoints](https://ardalis.com/mvc-controllers-are-dinosaurs-embrace-api-endpoints/) ================================================ FILE: docs/design-patterns/adapter-pattern.md ================================================ # Adapter Pattern ## 📕 Articles - [Adapter Design Pattern in ASP.NET Core](https://www.ezzylearning.net/tutorial/adapter-design-pattern-in-asp-net-core) ================================================ FILE: docs/design-patterns/builder.md ================================================ # Builder Design Pattern ## 📕 Articles - [SOLID Wash Tunnel - Fluent Builder (part 1/3)](https://www.ledjonbehluli.com/posts/wash-tunnel/fluent_builder_part_1/) - [SOLID Wash Tunnel - Fluent Builder (part 2/3)](https://www.ledjonbehluli.com/posts/wash-tunnel/fluent_builder_part_2/) - [SOLID Wash Tunnel - Fluent Builder (part 3/3)](https://www.ledjonbehluli.com/posts/wash-tunnel/fluent_builder_part_3/) - [Builder Design Pattern in .NET C#](https://levelup.gitconnected.com/builder-design-pattern-in-net-c-bbf11c891548) - [The Builder Pattern .net core](https://garywoodfine.com/the-builder-pattern-net-core/) - [Improve Tests with the Builder Pattern for Test Data](https://ardalis.com/improve-tests-with-the-builder-pattern-for-test-data/) ================================================ FILE: docs/design-patterns/chain-of-responsibility.md ================================================ # Chain Of Responsibility ## 📕 Articles - [Chain Of Responsibility Pattern C#](https://codewithshadman.com/chain-of-responsibility-pattern-csharp/) - [Chain Of Responsbility Pattern In C#/.NET](https://dotnetcoretutorials.com/2020/04/19/chain-of-responsbility-pattern-in-c-net-core/) - [Design Pattern : chain of responsibility implementation in Java](http://myjavaadventures.com/blog/2015/12/25/design-pattern-implementing-a-chain-of-responsibility-in-java/) - [Decoupling with Chain of Responsibility Pattern in C#](https://medium.com/net-core/decoupling-with-chain-of-responsibility-pattern-in-c-1273329ed923) - [SOLID Wash Tunnel - Chain of Responsibility](https://www.ledjonbehluli.com/posts/wash-tunnel/chain_of_responsibility/) - [Chain of Responsibility Design Pattern In .NET C#](https://levelup.gitconnected.com/chain-of-responsibility-design-pattern-in-net-c-666bb4dc2816) ## 📺 Videos - [C# Design Patterns: Chain of Responsibility | Pluralsight](https://www.pluralsight.com/courses/c-sharp-design-patterns-chain-responsibility) ================================================ FILE: docs/design-patterns/command-message-pattern.md ================================================ # Command Message Pattern ## 📕 Articles - [SOLID Wash Tunnel - Command Message](https://www.ledjonbehluli.com/posts/wash-tunnel/command_message/) ================================================ FILE: docs/design-patterns/command-pattern.md ================================================ # Command Pattern ## 📕 Articles - [Command - refactoring.guru](https://refactoring.guru/design-patterns/command) - [C# Design Patterns – Command](https://code-maze.com/command/) - [The Command Pattern in C#](https://exceptionnotfound.net/command-pattern-in-csharp/) - [Using composite command in ASP.NET Core](https://gunnarpeipman.com/aspnet-core-composite-command/) ## 📺 Videos - [Command Design Pattern (C#)](https://www.youtube.com/watch?v=nW2ahdZojho) - [Command Design Pattern](https://www.youtube.com/watch?v=ea5onQBXzS8) - [Command Pattern - Design Patterns](https://www.youtube.com/watch?v=GQzfF5EMD7o) ================================================ FILE: docs/design-patterns/decorator-pattern.md ================================================ # Decorator Pattern ## 📕 Articles - [Decorator Pattern in .NET Core 3.1](https://www.programmingwithwolfgang.com/decorator-pattern-in-net-core-3-1/) - [Beyond Basics - ASP.Net Core Using the Decorator Pattern](https://adamstorr.azurewebsites.net/blog/beyond-basics-aspnetcore-using-the-decorator-pattern) - [Decorator pattern with C# and DotNet Core](https://ranjeet.dev/decorator-pattern-with-csharp/) - [Using the Decorator Pattern to handle cross-cutting concerns](https://www.davidguida.net/using-decorators-to-handle-cross-cutting-concerns/) - [Using Decorators to handle cross-cutting concerns — Part 2 : a practical example](https://medium.com/@obiuan/using-decorators-to-handle-cross-cutting-concerns-part-2-a-practical-example-e05072b28458) - [Decorator pattern. A real example in C#](https://canro91.github.io/2021/02/10/DecoratorPattern/) - [How to add a caching layer in .NET 5 with Decorator pattern and Scrutor](https://www.code4it.dev/blog/caching-decorator-with-scrutor) - [MediatR: how to use Decorators to add retry policies](https://www.davidguida.net/mediatr-how-to-use-decorators-to-add-retry-policies/) - [Meanwhile... on the command side of my architecture](https://blogs.cuttingedge.it/steven/posts/2011/meanwhile-on-the-command-side-of-my-architecture/) - [Tackling cross-cutting concerns with a mediator pipeline](https://lostechies.com/jimmybogard/2014/09/09/tackling-cross-cutting-concerns-with-a-mediator-pipeline/) - [MediatR Pipeline Examples](https://lostechies.com/jimmybogard/2016/10/13/mediatr-pipeline-examples/) - [Mediator Behaviors](https://github.com/jbogard/MediatR/wiki/Behaviors) - [SOLID Wash Tunnel - Decorator](https://www.ledjonbehluli.com/posts/wash-tunnel/decorator/) ================================================ FILE: docs/design-patterns/design-patterns.md ================================================ # Design Patterns ## 📘 Resources - [iluwatar/java-design-patterns](https://github.com/iluwatar/java-design-patterns) - Design patterns implemented in Java - [kamranahmedse/design-patterns-for-humans](https://github.com/kamranahmedse/design-patterns-for-humans) ⭐⭐ - An ultra-simplified explanation to design patterns - [abishekaditya/DesignPatterns](https://github.com/abishekaditya/DesignPatterns) - Project : Design Patterns Examples in C# - [anupavanm/csharp-design-patterns-for-humans](https://github.com/anupavanm/csharp-design-patterns-for-humans) ⭐⭐ - Complete C# Examples Refereed in csharp-design-patterns-for-humans - [nemanjarogic/DesignPatternsLibrary](https://github.com/nemanjarogic/DesignPatternsLibrary) - A comprehensive design patterns library implemented in C#, which covers various design patterns from the most commonly used ones to the lesser-known ones. Get familiar with and learn design patterns through moderately realistic examples. - [beginor/DesignPatterns](https://github.com/beginor/DesignPatterns) - C# Design Patterns - [EdisonChou/DesignPattern.Samples.CSharp](https://github.com/EdisonChou/DesignPattern.Samples.CSharp) - [TengXiaoDai/DesignPattern](https://github.com/TengXiaoDai/DesignPattern) - This is my case in learning design patterns using C# - [rafaelfgx/DesignPatterns](https://github.com/rafaelfgx/DesignPatterns) - The 23 Gang of Four Design Patterns. - [exceptionnotfound/DesignPatterns](https://github.com/exceptionnotfound/DesignPatterns) - Come learn about all the Gang of Four patterns (e.g. Adapter, Facade, Strategy, Mediator, Command and more) with C# and food examples! - [wesdoyle/design-patterns-explained-with-food](https://github.com/wesdoyle/design-patterns-explained-with-food) - ⭐⭐ GoF Design Patterns with "Real-World" examples involving Food-Related Businesses and mock dependencies - [ardalis/DesignPatternsInCSharp](https://github.com/ardalis/DesignPatternsInCSharp) - [ledjon-behluli/SOLID-Wash-Tunnel](https://github.com/ledjon-behluli/SOLID-Wash-Tunnel) - Educational programming series on how to model an automatic wash tunnel with SOLID principles & various design patterns. - [tmrts/go-patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms - [the-builder-pattern-net-core](https://garywoodfine.com/the-builder-pattern-net-core) - C# Design Patterns Tutorial Sample Code - [milanm/DesignPatternsInUse](https://github.com/milanm/DesignPatternsInUse) - Most common Design Patterns you need to know, with examples in C#. ## 📕 Articles - [SOLID Wash Tunnel - Introduction](https://www.ledjonbehluli.com/posts/wash-tunnel/introduction/) ## 📺 Videos - [Design Patterns - SingletonSean Playlist](https://www.youtube.com/playlist?list=PLA8ZIAm2I03jaAbvEWk7nHlBYxy03JP46) - [Design Patterns Explained with Food - Wes Doyle Playlist](https://www.youtube.com/playlist?list=PL3_YUnRN3Uhi-__AdJ3yWgDB95_GYeX3x) - [Design Patterns (C# Examples) - Raw Coding Playlist](https://www.youtube.com/playlist?list=PLOeFnOV9YBa4ary9fvCULLn7ohNKR6Ees) ## Course - [CodeWithMosh - The Ultimate Design Patterns - Mosh Hamedani Course](https://codewithmosh.com/p/design-patterns) - [Design Patterns in C# and .NET - Udemy Course](https://www.udemy.com/course/design-patterns-csharp-dotnet/) ================================================ FILE: docs/design-patterns/factory-pattern.md ================================================ # Factory Pattern ## 📕 Articles - [The Factory Pattern In .NET Core](https://dotnetcoretutorials.com/2019/10/15/the-factory-pattern-in-net-core/) - [SOLID Wash Tunnel - Simple Factory](https://www.ledjonbehluli.com/posts/wash-tunnel/simple_factory/) - [DI-Friendly Factory Pattern](https://www.davidguida.net/di-friendly-factory-pattern/) - [Implementing factory pattern for dependency injection in .NET core](https://chaitanyasuvarna.wordpress.com/2021/03/21/factory-pattern-di-in-net-core/) ⭐ ## 📺 Videos - [SOLID Principles for C# Developers](https://www.pluralsight.com/courses/csharp-solid-principles) ================================================ FILE: docs/design-patterns/mediator-pattern.md ================================================ # Mediator Pattern ## 📕 Articles - [The Mediator Pattern In C# .NET – Part 1 – What’s A Mediator?](https://dotnetcoretutorials.com/2019/04/30/the-mediator-pattern-in-net-core-part-1-whats-a-mediator/) - [Mediator Pattern Implemented In .NET/C#](https://dasith.me/2019/01/07/mediator-pattern-implemented-in-net/) - [The Mediator Pattern](https://garywoodfine.com/the-mediator-pattern/) - [Mediator Design Pattern in ASP.NET Core](https://www.ezzylearning.net/tutorial/mediator-design-pattern-in-asp-net-core) - [SOLID Wash Tunnel - Mediator](https://www.ledjonbehluli.com/posts/wash-tunnel/mediator/) - [Tackling cross-cutting concerns with a mediator pipeline](https://lostechies.com/jimmybogard/2014/09/09/tackling-cross-cutting-concerns-with-a-mediator-pipeline/) - [MediatR Pipeline Examples](https://lostechies.com/jimmybogard/2016/10/13/mediatr-pipeline-examples/) - [Mediator Behaviors](https://github.com/jbogard/MediatR/wiki/Behaviors) - [Applying cross-cutting concerns in ASP.NET Core with MediatR using behaviors](https://lurumad.github.io/cross-cutting-concerns-in-asp-net-core-with-meaditr) - [You probably don't need MediatR](https://arialdomartini.github.io/mediatr) - [Mediator Design Pattern In .NET C#](https://levelup.gitconnected.com/mediator-design-pattern-in-net-c-e1bfcc96789d) ================================================ FILE: docs/design-patterns/observer.md ================================================ # Observer Pattern ## 📕Articles - [Observer Design Pattern in .NET C#](https://levelup.gitconnected.com/observer-design-pattern-in-net-c-55633462f18e) ================================================ FILE: docs/design-patterns/query-object-pattern.md ================================================ # Query Object Pattern ## 📕 Articles - [Query Objects instead of Repositories](https://codeopinion.com/query-objects-instead-of-repositories/) - [Query Objects with a Mediator](https://codeopinion.com/query-objects-with-a-mediator/) ================================================ FILE: docs/design-patterns/repository-pattern.md ================================================ # Repository Pattern ## 📕 Articles - [Repository - Martin Fowler](https://martinfowler.com/eaaCatalog/repository.html) - [No need for repositories and unit of work with Entity Framework Core](https://gunnarpeipman.com/ef-core-repository-unit-of-work/) - [Repository and unit of work ARE useful](https://dotnetfalcon.com/repository-and-unit-of-work-are-useful/) - [The generic repository is just a lazy anti-pattern](https://www.ben-morris.com/why-the-generic-repository-is-just-a-lazy-anti-pattern/) - [The Repository Pattern isn’t an Anti-Pattern; You’re just doing it wrong.](https://brianbu.com/2019/09/25/the-repository-pattern-isnt-an-anti-pattern-youre-just-doing-it-wrong/) - [The Generic Repository Is An Anti-Pattern](https://blog.sapiensworks.com/post/2012/03/05/The-Generic-Repository-Is-An-Anti-Pattern.aspx) - [Repository Pattern in .Net Core](https://www.programmingwithwolfgang.com/repository-pattern-net-core/) - [DDD: The Generic Repository](http://codebetter.com/gregyoung/2009/01/16/ddd-the-generic-repository/) - [Creating A Generic Repository](https://medium.com/@morgankenyon/tinroll-4-creating-a-generic-repository-9846c72e11ec) - [Repository is Dead: Long Live Repository](http://codebetter.com/gregyoung/2009/04/23/repository-is-dead-long-live-repository/) - [More on Repository](http://codebetter.com/gregyoung/2009/04/24/more-on-repository/) - [Avoiding the Repository Pattern with an ORM](https://codeopinion.com/avoiding-the-repository-pattern-with-an-orm/) - [Query Objects instead of Repositories](https://codeopinion.com/query-objects-instead-of-repositories/) - [Building a CachedRepository via Strategy Pattern](https://ardalis.com/building-a-cachedrepository-via-strategy-pattern/?utm_sq=glv8x7culc) - [Adding decorated classes to the ASP.NET Core DI container using Scrutor](https://andrewlock.net/adding-decorated-classes-to-the-asp.net-core-di-container-using-scrutor/) - [Introducing the CachedRepository Pattern](https://ardalis.com/introducing-the-cachedrepository-pattern/) - [Should repositories throw exceptions ?](https://minasami.com/2020/09/14/should-repositories-throw-exceptions.html) - [Repository Pattern in ASP.NET Core with Adapter Pattern for easy Maintenance & better Unit Testing](https://procodeguide.com/programming/repository-pattern-in-aspnet-core/) - [Should Controllers Reference Repositories or Services](https://ardalis.com/should-controllers-reference-repositories-services/) - [Architecting in the pit of doom: The evils of the repository abstraction layer](https://ayende.com/blog/4784/architecting-in-the-pit-of-doom-the-evils-of-the-repository-abstraction-layer) - [Implementing repository querying interface in EF Core DbContext](https://gunnarpeipman.com/ef-core-dbcontext-repository/) - [Repository pattern or DbContext - what's your poison?](https://www.reddit.com/r/dotnet/comments/rc2lzj/repository_pattern_or_dbcontext_whats_your_poison/) - [Repository Pattern C#](https://codewithshadman.com/repository-pattern-csharp/) - [Repository and Unit of Work Pattern](https://www.programmingwithwolfgang.com/repository-and-unit-of-work-pattern/) - [Should you use the Repository Pattern? With CQRS, Yes and No!](https://codeopinion.com/should-you-use-the-repository-pattern-with-cqrs-yes-and-no/) - [Implement Repository Pattern using .NET EF Core](https://thecodeblogger.com/2021/06/27/implement-repository-pattern-using-net-ef-core/) - [EF Core Repository with Specification Pattern in .NET](https://thecodeblogger.com/2021/07/01/ef-core-repository-with-specification-pattern-in-net/) - [Better Enhanced Repository Pattern Implementation in .NET ](https://levelup.gitconnected.com/better-enhanced-repository-pattern-implementation-in-net-c-4e6f4bbe48a9) - [The Repository Pattern is simple yet misunderstood](https://blog.elmah.io/the-repository-pattern-is-simple-yet-misunderstood/) - [Getting Started With Specifications](https://blog.nimblepros.com/blogs/getting-started-with-specifications/) - [Specification Pattern](https://deviq.com/design-patterns/specification-pattern) - [Specification pattern: C# implementation](https://enterprisecraftsmanship.com/posts/specification-pattern-c-implementation/) - [CQRS vs Specification pattern](https://enterprisecraftsmanship.com/posts/cqrs-vs-specification-pattern/) - [Specification Pattern vs Always-Valid Domain Model](https://enterprisecraftsmanship.com/posts/specification-pattern-always-valid-domain-model/) - [Unit of work pattern with Dapper](https://dejanstojanovic.net/aspnet/2021/november/unit-of-work-pattern-with-dapper/) ## 📺 Videos - [Repository Pattern with C# and Entity Framework - Mosh Hamedani](https://www.youtube.com/watch?v=rtXpYpZdOzM) - [Step by Step - Repository Pattern and Unit of Work with Asp.Net Core 5](https://www.youtube.com/watch?v=-jcf1Qq8A-4) - [Should you use the Repository Pattern? With CQRS, Yes and No!](https://www.youtube.com/watch?v=01lygxvbao4) - [Reviewing the Specification Pattern and NuGet package](https://www.youtube.com/watch?v=BgWWbBUWyig) - [Should we use repositories or not?](https://www.youtube.com/watch?v=1usrGohx8Bo) - [Reviewing the Specification Pattern and NuGet package](https://www.youtube.com/watch?v=BgWWbBUWyig) - [What's new in v5 of Ardalis.Specification](https://www.youtube.com/watch?v=gT72mWdD4Qo) - [Ardalis - Working on the Ardalis.Specification and EF Extensions GitHub projects](https://www.youtube.com/watch?v=PbHic9Ndqoc)o) ## 🚀 Samples - [dotnet-architecture/eShopOnWeb](https://github.com/dotnet-architecture/eShopOnWeb/blob/15bd78ee5b753a51fd9f8214a6ee8f5007e2d40f/src/Infrastructure/Data/EfRepository.cs) - [thangchung/clean-architecture-dotnet](https://github.com/thangchung/clean-architecture-dotnet/blob/main/src/N8T.Infrastructure.EfCore/Repository.cs) ## 📦 Libraries - [ardalis/Specification](https://github.com/ardalis/Specification) - Base class with tests for adding specifications to a DDD model - [FoundatioFx/Foundatio.Repositories](https://github.com/FoundatioFx/Foundatio.Repositories) - Generic repositories - [RobThree/MongoRepository](https://github.com/RobThree/MongoRepository) - Repository abstraction layer on top of Official MongoDB C# driver - [urfnet/URF.Core](https://github.com/urfnet/URF.Core) - Unit of Work & Repositories Framework - .NET Core, NET Standard, Entity Framework Core. 100% extensible & lightweight. Live demo: https://goo.gl/QpJVgd - [alexandre-spieser/mongodb-generic-repository](https://github.com/alexandre-spieser/mongodb-generic-repository) - An example of generic repository implementation using the MongoDB C# Sharp 2.0 driver (async) - [esendir/MongoRepository](https://github.com/esendir/MongoRepository) - Repository pattern for MongoDB with extended features - [WeihanLi/WeihanLi.EntityFramework](https://github.com/WeihanLi/WeihanLi.EntityFramework) - EntityFramework extensions - [brunohbrito/MongoDB-RepositoryUoWPatterns](https://github.com/brunohbrito/MongoDB-RepositoryUoWPatterns) - Example of an implementation of Repository and Unit of Work Patterns with MongoDB for ASP.NET Core. - [TanvirArjel/EFCore.GenericRepository](https://github.com/TanvirArjel/EFCore.GenericRepository) - This repository contains Generic Repository implementation for Entity Framework Core - [Daniel127/EF-Unit-Of-Work](https://github.com/Daniel127/EF-Unit-Of-Work) - Repository and Unit of Work pattern implementation for Entity Framework Core. - [SharpRepository/SharpRepository](https://github.com/SharpRepository/SharpRepository) - C# Generic Repository for use with Entity Framework, RavenDB and more with built-in caching options. - [AhmedTarekHasan/BetterRepository](https://github.com/AhmedTarekHasan/BetterRepository) - [threenine/Threenine.Data](https://github.com/threenine/Threenine.Data) - Generic Repository Pattern for .net core - [timschreiber/DapperUnitOfWork](https://github.com/timschreiber/DapperUnitOfWork) - [BaalaSrinivas/Dapper.RepositoryAndUnitOfWork](https://github.com/BaalaSrinivas/Dapper.RepositoryAndUnitOfWork) - [outmatic/Dapper.UnitOfWork](https://github.com/outmatic/Dapper.UnitOfWork) ================================================ FILE: docs/design-patterns/repr.md ================================================ # REPR ## 📕 Articles - [REPR Design Pattern - DevIQ](https://deviq.com/design-patterns/repr-design-pattern) - [MVC Controllers are Dinosaurs - Embrace API Endpoints](https://ardalis.com/mvc-controllers-are-dinosaurs-embrace-api-endpoints/) ## 📺 Videos - [The .NET Docs Show - Controllers are Dinosaurs: The Case for API Endpoints](https://www.youtube.com/watch?v=9oroj2TmxBs) - [REPR and Clean Architecture](https://www.youtube.com/watch?v=-AJcEJPwagQ) ## 📦 Libraries - [ardalis/ApiEndpoints](https://github.com/ardalis/ApiEndpoints) - A project for supporting API Endpoints in ASP.NET Core web applications. - [dj-nitehawk/FastEndpoints](https://github.com/dj-nitehawk/FastEndpoints) - A light-weight REST Api framework for ASP.Net 6 that implements REPR (Request-Endpoint-Response) Pattern - [NyronW/MinimalEndpoints](https://github.com/NyronW/MinimalEndpoints) - A light weight abstraction over ASP.NET minimal API ## 🚀 Samples - [dj-nitehawk/MongoWebApiStarter](https://github.com/dj-nitehawk/MongoWebApiStarter) - A full-featured starter template for `dotnet new` to quickly scaffold a .Net 5 Web-Api project with MongoDB as the data store. ================================================ FILE: docs/design-patterns/service-locator.md ================================================ # Service Locator ## 📕 Articles - [Service Locator is an Anti-Pattern](https://blog.ploeh.dk/2010/02/03/ServiceLocatorisanAnti-Pattern/) - [The Service Locator Anti-Pattern](https://freecontent.manning.com/the-service-locator-anti-pattern/) - [ServiceLocator Shim For .NET Core](https://dotnetcoretutorials.com/2018/05/06/servicelocator-shim-for-net-core/) - [SOLID Wash Tunnel - Service Locator](https://www.ledjonbehluli.com/posts/wash-tunnel/service_locator/) - [Service Locator is not an Anti-Pattern](https://jimmybogard.com/service-locator-is-not-an-anti-pattern/) ## 🚀 Samples - [SlimMessageBus](https://github.com/zarusz/SlimMessageBus/blob/d335afcf232e9a2207ae1c5a49dccd2aa50dbaee/src/SlimMessageBus.Host.ServiceLocator/ServiceLocatorMessageBusDependencyResolver.cs) ================================================ FILE: docs/design-patterns/singleton.md ================================================ # Singleton ## 📕 Articles - [Singleton vs Dependency Injection](https://enterprisecraftsmanship.com/posts/singleton-vs-dependency-injection/) - [SOLID Wash Tunnel - Singleton](https://www.ledjonbehluli.com/posts/wash-tunnel/singleton/) ================================================ FILE: docs/design-patterns/specification-pattern.md ================================================ # Specification Pattern ## 📕 Articles - [Specification Pattern](https://deviq.com/design-patterns/specification-pattern) - [Specification pattern: C# implementation](https://enterprisecraftsmanship.com/posts/specification-pattern-c-implementation/) - [CQRS vs Specification pattern](https://enterprisecraftsmanship.com/posts/cqrs-vs-specification-pattern/) - [Implementing Query Specification pattern in Entity Framework Core](https://gunnarpeipman.com/ef-core-query-specification/) - [Using the Specification pattern with Repository and Unit of work](https://dotnetfalcon.com/using-the-specification-pattern-with-repository-and-unit-of-work/) - [Specification](https://ardalis.github.io/Specification/) - [Specification Pattern in ASP.NET Core – Enhancing Generic Repository Pattern](https://codewithmukesh.com/blog/specification-pattern-in-aspnet-core/) - [.NET – Composite Specifications using EF Core](https://thecodeblogger.com/2021/07/02/net-composite-specifications-using-ef-core/) - [EF Core Repository with Specification Pattern in .NET](https://thecodeblogger.com/2021/07/01/ef-core-repository-with-specification-pattern-in-net/) - [Getting Started With Specifications](https://blog.nimblepros.com/blogs/getting-started-with-specifications/) - [https://enterprisecraftsmanship.com/posts/specification-pattern-always-valid-domain-model/](https://enterprisecraftsmanship.com/posts/specification-pattern-always-valid-domain-model/) ## 📺 Videos - [Reviewing the Specification Pattern and NuGet package](https://www.youtube.com/watch?v=BgWWbBUWyig) - [What's new in v5 of Ardalis.Specification](https://www.youtube.com/watch?v=gT72mWdD4Qo) - [Ardalis - Working on the Ardalis.Specification and EF Extensions GitHub projects](https://www.youtube.com/watch?v=PbHic9Ndqoc) ## 📦 Libraries - [ardalis/Specification](https://github.com/ardalis/Specification) - Base class with tests for adding specifications to a DDD model ## 🚀 Samples - [dotnet-architecture/eShopOnWeb](https://github.com/dotnet-architecture/eShopOnWeb) ================================================ FILE: docs/design-patterns/state-pattern.md ================================================ # State Design Pattern ### 📕Articles - [SOLID Wash Tunnel - State](https://www.ledjonbehluli.com/posts/wash-tunnel/state/) ================================================ FILE: docs/design-patterns/strategy-pattern.md ================================================ # Strategy Pattern ## 📕 Articles - [ASP.NET Core and the Strategy Pattern](https://adamstorr.azurewebsites.net/blog/aspnetcore-and-the-strategy-pattern) - [6 Ways To Implement The Strategy Pattern In C# (Basic To Advanced)](https://www.blog.jamesmichaelhickey.com/strategy-pattern-implementations) - [Strategy Pattern C#](https://codewithshadman.com/strategy-pattern-csharp) - [C# Design Patterns – Strategy Design Pattern](https://code-maze.com/strategy/) - [The Strategy Pattern in C#](https://www.exceptionnotfound.net/strategy-pattern-in-csharp/) - [Strategy Pattern in ASP.NET Core](https://www.ezzylearning.net/tutorial/strategy-pattern-in-asp-net-core) - [3 Ways to Implement Strategy Design Pattern in C#](https://levelup.gitconnected.com/3-ways-to-implement-strategy-design-pattern-in-c-a58548d8a4ad) - [Building a CachedRepository via Strategy Pattern](https://ardalis.com/building-a-cachedrepository-via-strategy-pattern/?utm_sq=glv8x7culc) - [Strategy Design Pattern In .NET C#](https://levelup.gitconnected.com/strategy-design-pattern-in-net-c-b9dbd863c31e) - [Advanced Dependency Injection Techniques in ASP.NET Core](https://medium.com/geekculture/advanced-dependency-injection-techniques-in-asp-net-core-3e6e9e0c541a) ## 📺 Videos - [SOLID Principles for C# Developers](https://www.pluralsight.com/courses/csharp-solid-principles) ## 🚀 Samples - [WestDiscGolf/StrategyPatternExample](https://github.com/WestDiscGolf/StrategyPatternExample) - [Dashell/strategy-pattern-dotnetcore](https://github.com/Dashell/strategy-pattern-dotnetcore) ================================================ FILE: docs/design-patterns/transaction-script-pattern.md ================================================ # Transaction Script Pattern ## 📕 Articles - [Transaction Script](https://martinfowler.com/eaaCatalog/transactionScript.html) - [Transaction Script Pattern](https://dzone.com/articles/transaction-script-pattern) - [Transaction Script](https://java-design-patterns.com/patterns/transaction-script/) - [Framework Design Guidelines: Domain Logic Patterns](https://www.informit.com/articles/article.aspx?p=1398617) ## 📺 Videos - [Reinventing the Transaction Script - Scott Wlaschin](https://www.youtube.com/watch?v=USSkidmaS6w) - [Domain Logic: Where does it go?](https://www.youtube.com/watch?v=PrJIMTZsbDw) - [Transaction Script (C#) - PATTERNS OF ENTERPRISE ARCHITECTURE](https://www.youtube.com/watch?v=K72nvMecF24) - [Is an ANEMIC Domain Model really that BAD?](https://www.youtube.com/watch?v=aLFMJ_frafg) ================================================ FILE: docs/devops/ci-cd/azure-devops.md ================================================ # Azure Devops ## 📝 Articles - [Manage release flow using pipelines in Azure DevOps](https://daniel-krzyczkowski.github.io/Manage-Release-Flow-Using-Pipelines-In-Azure-DevOps/) - [ASP.NET Core integration tests with docker-compose on Azure Pipelines](https://blog.joaograssi.com/asp-net-core-integration-tests-with-docker-compose-azure-pipelines/) ## 📺 Videos - [Step by Step - Use Azure DevOps to Test, Build and Deploy an API](https://www.youtube.com/watch?v=SOtC1VLZKm4) - [Azure DevOps Playlist - Rahul Nath](https://www.youtube.com/playlist?list=PL59L9XrzUa-m7AFDgjWuwm6exyCklc03U) ================================================ FILE: docs/devops/ci-cd/github-actions.md ================================================ # GitHub Actions ## 📘 Resources - [sdras/awesome-actions](https://github.com/sdras/awesome-actions) - A curated list of awesome actions to use on GitHub - [GuillaumeFalourd/useful-actions](https://github.com/GuillaumeFalourd/useful-actions) - Curated list of useful Github actions with workflows examples 💡 - [28 Days of GitHub Action Tips](https://dev.to/github/28-days-of-github-action-tips-4opg) - [28 Days of GitHub: Automating and Improving Your Workflow Series' Articles](https://dev.to/blackgirlbytes/series/16662) - [GuillaumeFalourd/useful-actions](https://github.com/GuillaumeFalourd/useful-actions) - Curated list of useful Github actions with workflows examples ## 📝 Articles - [.NET 💜 GitHub Actions](https://devblogs.microsoft.com/dotnet/dotnet-loves-github-actions/) - [Automate Azure AD B2C policies release with GitHub Actions](https://daniel-krzyczkowski.github.io/Automate-Azure-AD-B2C-policies-release-with-GitHub-Actions/) - [Create your own GitHub Action with .NET](https://pumpingco.de/blog/create-your-own-github-action-with-dotnet/) - [GETTING STARTED WITH GITHUB ACTIONS FOR .NET DEVELOPERS](https://www.stevejgordon.co.uk/getting-started-with-github-actions-for-dotnet-developers) - [How to build and push Docker image with GitHub actions?](https://event-driven.io/en/how_to_buid_and_push_docker_image_with_github_actions/) - [Continuous database deployment with GitHub Actions](https://dotnetthoughts.net/continuous-database-deployment-with-github-actions/) - [Embedding dotnet format in your development cycle](https://gsferreira.com/archive/2022/embedding-dotnet-format-in-your-development-cycle/) - [Quick Wins for .NET build pipelines](https://gsferreira.com/archive/2022/quick-wins-for-dotnet-build-pipelines/) - [Configure GitHub Actions](https://docs.docker.com/ci-cd/github-actions/) - [Hello Docker CI / CD - Github Actions](https://www.basefactor.com/github-actions-docker) - [ASP.NET Core integration tests with docker-compose on GitHub Actions](https://blog.joaograssi.com/posts/2020/asp-net-core-integration-tests-with-docker-compose-github-actions/) - [Setup Continuous Delivery with GitHub Actions](https://dev.to/github/setup-continuous-delivery-with-github-actions-4pea) - [From Zero to Production - Generate everything with a single button](https://steven-giesel.com/blogPost/5f9e9f0d-2413-4e4b-8e38-9eebe9503e52) - [Publishing Images With GitHub Actions](https://www.kenmuse.com/blog/publishing-images-with-github-actions/) - [Ubuntu 22.04.1 LTS GitHub action Installed Software](https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md) - [Code Coverage in GitHub with .NET Core](https://samlearnsazure.blog/2021/01/05/code-coverage-in-github-with-net-core/) - [About GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners) - [GitHub Actions: Publish Code Coverage Summary to Pull Requests](https://josh-ops.com/posts/github-code-coverage/) - [How To Build & Publish NuGet Packages With GitHub Actions](https://www.jamescroft.co.uk/how-to-build-publish-nuget-packages-with-github-actions/) - [Setting GitHub Actions Environment Variables In PowerShell](https://www.jamescroft.co.uk/how-to-build-publish-nuget-packages-with-github-actions/) - [Generating Code Coverage Reports in .NET Core](https://dotnetthoughts.net/generating-code-coverage-reports-in-dotnet-core/) - [Automated versioning and package publishing using GitHub Actions](https://dotnetthoughts.net/automated-versioning-and-package-publishing-using-github-actions/) - [Publish docker images to GitHub Container Registry (ghcr)](https://dotnetthoughts.net/publish-images-to-github-container-registry/) - [Creating a GitHub Composite Action](https://samlearnsazure.blog/2022/12/19/creating-a-github-composite-action/) - [Automatically generated release notes](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes) - [How to automatically generate release notes for your project](https://dev.to/github/how-to-automatically-generate-release-notes-for-your-project-2ng8) - [GitHub actions example for automatic release drafts and changelog.md creation](https://johanneskonings.dev/github/2021/02/28/github_automatic_releases_and-changelog/) - [Stop writing your changelogs manually](https://tiagomichaelsousa.dev/articles/stop-writing-your-changelogs-manually) ⭐⭐ - [Git workflow with conventional commits and semantic auto release](https://gist.github.com/vtenq/7a93687108cb876f884c3ce75a8a8023) ⭐⭐ - [Ship It! (How Wilco Does CI/CD)](https://www.trywilco.com/post/wilco-ci-cd-github-heroku) ⭐⭐ - [New git guidelines: We have switched to Conventional Commits](https://dev.to/visuellverstehen/new-git-guidelines-we-have-switched-to-conventional-commits-1p0c) - [SEMANTIC BRANCH NAMES AND COMMIT MESSAGES IN GIT](https://dev-tips.com/git/semantic-branch-names-and-commit-messages-in-git) - [A Guide to Git(Hub) Flow and Commits](https://roalcantara.medium.com/a-guide-to-improve-the-git-hub-flow-and-commits-messages-b495461e1115) ⭐ - [Reusing Workflows - GitHub Action Docs](https://docs.github.com/en/actions/using-workflows/reusing-workflows) ⭐ - [Github Actions: check steps status](https://stackoverflow.com/questions/57850553/github-actions-check-steps-status) - [Dependencies Between Workflows on Github Actions](https://stackoverflow.com/questions/58457140/dependencies-between-workflows-on-github-actions) - [7 advanced workflow automation features with GitHub Actions](https://github.blog/2021-11-18-7-advanced-workflow-automation-features-with-github-actions/) ⭐ - [Storing workflow data as artifacts](https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts) - [GitHub Actions: Ability to change retention days for artifacts and logs](https://github.blog/changelog/2020-10-08-github-actions-ability-to-change-retention-days-for-artifacts-and-logs/) - [How to auto-reject a pull request if tests are failing (Github actions)](https://stackoverflow.com/questions/58654530/how-to-auto-reject-a-pull-request-if-tests-are-failing-github-actions) - [Managing a branch protection rule](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule) - [Deploy to Azure with GitHub Actions](https://limeii.github.io/2022/11/deploy-to-azure-appservice-with-github-actions/) ⭐ - [Deploy on multiple env with GitHub Actions](https://limeii.github.io/2022/11/deploy-on-multiple-environment-with-github-actions/) ⭐ - [Build a .NET web app using GitHub Actions](https://learn.microsoft.com/en-us/dotnet/architecture/devops-for-aspnet-developers/actions-build) ⭐⭐ - [Deploy a .NET web app using GitHub Actions](https://learn.microsoft.com/en-us/dotnet/architecture/devops-for-aspnet-developers/actions-deploy) ⭐⭐ - [Deployment with GitHub Actions: The Bad and the Ugly](https://colinsalmcorner.com/deployment-with-github-actions/) ⭐ - [usings on GitHub Actions Reusable Workflows](https://colinsalmcorner.com/musings-on-reusable-workflows/) ⭐⭐⭐ - [GitHub Composite Actions](https://colinsalmcorner.com/github-composite-actions/) ⭐ - [Building and testing .NET](https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net) ⭐⭐ - [How To Use GitHub Actions for Deployments When Following Trunk-Based Development](https://blog.jannikwempe.com/github-actions-trunk-based-development) - [Automating Releases of .NET SDKs using Semantic Release](https://medium.com/@gpanga/automating-releases-of-net-sdks-using-semantic-release-e3df46013876) ⭐ - [GitHub Actions: Deprecating save-state and set-output commands](https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/) - [How to use Cake with Github Actions](https://garywoodfine.com/how-to-use-cake-with-github-actions/) - [How to use Github actions to build & deploy Github nuget packages](https://garywoodfine.com/how-to-use-github-actions-to-build-deploy-github-nuget-packages/) ⭐ - [Assigning permissions to jobs - GitHub Actions Docs](https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs) - [About Workflows - GitHub Action Docs](https://docs.github.com/en/actions/using-workflows/about-workflows) - [Workflow syntax for GitHub Actions - GitHub Action Docs](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions) - [Events that trigger workflows - GitHub Actions Docs](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows) ⭐ - [Workflow commands for GitHub Actions - GitHub Action Docs](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions) - [Steps Context - GitHub Actions Docs](https://docs.github.com/en/actions/learn-github-actions/contexts) - [Expressions - GitHub Action Docs](https://docs.github.com/en/actions/learn-github-actions/expressions) - [Series: Creating my first GitHub app with Probot](https://andrewlock.net/series/creating-my-first-github-app-with-probot/) ⭐ - [How to set env parameters conditionally in GitHub Actions](https://dev.to/ku6ryo/how-to-set-env-parameters-conditionally-in-github-actions-1g6a) ⭐ - [Advanced GitHub Actions - Conditional Workflow ❓](https://hungvu.tech/advanced-github-actions-conditional-workflow) ⭐ - [Choose environment from branch in GitHub action](https://www.codewrecks.com/post/github/choose-environment-from-branch/) ⭐⭐ - [A Deep Dive into GitHub Actions’ Reusable Workflows](https://betterprogramming.pub/how-to-use-github-actions-reusable-workflow-8604e8cbf258) ⭐ - [GitHub Actions: reusable workflows is generally available](https://github.blog/2021-11-29-github-actions-reusable-workflows-is-generally-available/) - [Configuration options for the dependabot.yml file](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/) ⭐ - [Let's code a reusable workflow for building state-of-the-art, multi-platform Docker images with GitHub Actions](https://blog.derlin.ch/github-actions-reusable-workflow-docker-images) ⭐ - [checkout@v2 not getting recent commits](https://github.com/actions/checkout/issues/439) - [Creating a composite action](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action) - [Metadata syntax for GitHub Actions](https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions) ⭐ - [DRYing out Github Actions - Strategies for minimizing repetition in your workflows](https://technology.doximity.com/articles/drying-out-github-actions) - [GitHub Actions: Input types for manual workflows](https://github.blog/changelog/2021-11-10-github-actions-input-types-for-manual-workflows/) - [Using Composite Actions with GitHub Actions](https://doug.sh/posts/using-composite-actions-with-github-actions/) - [Using Composite GitHub Actions to make your Workflows smaller and more reusable](https://wallis.dev/blog/composite-github-actions) ⭐ - [How to start using reusable workflows with GitHub Actions](https://github.blog/2022-02-10-using-reusable-workflows-github-actions/) ⭐ - [The GITHUB_TOKEN in GitHub Actions: How it Works, Change Permissions, Customizations](https://dev.to/github/the-githubtoken-in-github-actions-how-it-works-change-permissions-customizations-3cgp) ⭐ - [Managing GitHub Actions settings for a repository](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository) - [Supercharging GitHub Actions with Job Summaries](https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/) - [Adding a `job summary`](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary) - [Running unit tests in GitHub Actions](https://octopus.com/blog/githubactions-running-unit-tests) - [Publishing a NuGet package using GitHub and GitHub Actions](https://www.meziantou.net/publishing-a-nuget-package-following-best-practices-using-github.htm) - [Run GitHub Actions locally with DinD and nektos/act](https://gauravgahlot.in/run-github-actions-locally-docker-nektos-act/) ## 📺 Videos - [Master GitHub Actions Tutorial - Playlist Cameron McKenzie](https://www.youtube.com/playlist?list=PL_RrEj88onS-um2xFy01sY46ik_2yt_EQ) - [Building Docker containers with GitHub Actions](https://www.youtube.com/watch?v=09lZdSpeHAk) - [Level-up Your DevOps with GitHub Actions and Kubernetes](https://www.youtube.com/watch?v=TMbXwNtuAJo) - [Build and deploy to Kubernetes using Github Actions](https://www.youtube.com/watch?v=xHBiawlGO7s) ## 📦 Libraries - [benchmark-action/github-action-benchmark](https://github.com/benchmark-action/github-action-benchmark) - GitHub Action for continuous benchmarking to keep performance - [xoofx/dotnet-releaser](https://github.com/xoofx/dotnet-releaser) - Easily build, run tests and coverage, cross-compile, package and publish your .NET library or application to NuGet and GitHub. - [peter-evans/docker-compose-actions-workflow](https://github.com/peter-evans/docker-compose-actions-workflow) - GitHub Actions workflow example using Docker Compose to build and test a multi-container stack - [dorny/test-reporter](https://github.com/dorny/test-reporter) - Displays test results from popular testing frameworks directly in GitHub - [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) - GitHub Action to set up Docker Buildx - [docker/build-push-action](https://github.com/docker/build-push-action) - GitHub Action to build and push Docker images with Buildx - [brandedoutcast/publish-nuget](https://github.com/brandedoutcast/publish-nuget) - 📦 GitHub action to automate publishing NuGet packages when project version changes - [codecov/codecov-action](https://github.com/codecov/codecov-action) - GitHub Action that uploads coverage to Codecov - [github/codeql-action](https://github.com/github/codeql-action) - Actions for running CodeQL analysis - [marketplace/actions/release-changelog-builder](https://github.com/marketplace/actions/release-changelog-builder) - A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want. - [mindsers/changelog-reader-action](https://github.com/mindsers/changelog-reader-action) - A GitHub action to read and get data from the CHANGELOG.md file 🚀 - [thomaseizinger/keep-a-changelog-new-release](https://github.com/thomaseizinger/keep-a-changelog-new-release) - Automatically update your CHANGELOG.md for a new release - [thomaseizinger/create-release](https://github.com/thomaseizinger/create-release) - A better GitHub action for creating a release. - [mikepenz/release-changelog-builder-action](https://github.com/mikepenz/release-changelog-builder-action) - A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want. - [Tyrrrz/GitHubActionsTestLogger](https://github.com/Tyrrrz/GitHubActionsTestLogger) - [nektos/act](https://github.com/nektos/act) - Run your GitHub Actions locally - [rhysd/actionlint](https://github.com/rhysd/actionlint) - Static checker for GitHub Actions workflow files ⭐⭐ - [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) - GitHub Action to configure QEMU support - [docker/build-push-action](https://github.com/docker/build-push-action) - GitHub Action to build and push Docker images with Buildx - [irongut/CodeCoverageSummary](https://github.com/irongut/CodeCoverageSummary) - A GitHub Action that reads Cobertura format code coverage files and outputs a text or markdown summary - [zyborg/dotnet-tests-report](https://github.com/zyborg/dotnet-tests-report) - GitHub Action to run .NET Core tests and generate report attached to Workflow Run - [coverallsapp/github-action](https://github.com/coverallsapp/github-action) - Coveralls Github Action - [google-github-actions/release-please-action](https://github.com/google-github-actions/release-please-action) - automated releases based on conventional commits - [bcoe/conventional-release-labels](https://github.com/bcoe/conventional-release-labels) - Apply labels for automatically generated release notes, based on conventionalcommits.org - [mithro/autolabeler](https://github.com/mithro/autolabeler) - Add labels to Pull Requests based on matched file patterns - [TimonVS/pr-labeler-action](https://github.com/TimonVS/pr-labeler-action) - Automatically labels your PRs based on branch name patterns like feature/* or fix/*. - [actions/labeler](https://github.com/actions/labeler) - An action for automatically labelling pull requests - [commitizen-tools/commitizen](https://github.com/commitizen-tools/commitizen) - Create committing rules for projects 🚀 auto bump versions ⬆️ and auto changelog generation 📂 - [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) - A GitHub Action that ensures that your PR title matches the Conventional Commits spec. - [vivaxy/vscode-conventional-commits](https://github.com/vivaxy/vscode-conventional-commits) - 💬Conventional Commits for VSCode. - [fuxingloh/multi-labeler](https://github.com/fuxingloh/multi-labeler) - Multi labeler for title, body, comments, commit messages, branch, author or files with automated status checks. - [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) - A GitHub action to create a pull request for changes to your repository in the actions workspace - [devops-infra/action-pull-request](https://github.com/devops-infra/action-pull-request) - GitHub Action that will create a pull request from the current branch - [probot/probot](https://github.com/probot/probot) - 🤖 A framework for building GitHub Apps to automate and improve your workflow - [aslafy-z/conventional-pr-title-action](https://github.com/aslafy-z/conventional-pr-title-action) - Ensure your PR title matches the Conventional Commits spec. - [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) - This action can be used to halt any workflow until required checks for a given ref (e.g., in a sibling workflow) pass successfully. - [actions/starter-workflows](https://github.com/actions/starter-workflows) - Accelerating new GitHub Actions workflows ⭐⭐ - [agilepathway/label-checker](https://github.com/agilepathway/label-checker) Check pull requests for the presence or absence of specified labels - [cycjimmy/semantic-release-action](https://github.com/cycjimmy/semantic-release-action) - GitHub Action for Semantic Release - [semantic-release/semantic-release](https://github.com/semantic-release/semantic-release) - Fully automated version management and package publishing - [semantic-release/exec](https://github.com/semantic-release/exec) - semantic-release plugin to execute custom shell commands - [semantic-release/git](https://github.com/semantic-release/git) - semantic-release plugin to commit release assets to the project's git repository - [felipecrs/semantic-release-export-data](https://github.com/felipecrs/semantic-release-export-data) - semantic-release plugin to export variables like the next release version - [cake-build/cake-action](https://github.com/cake-build/cake-action) Run Cake (C# Make) scripts in your GitHub Actions workflows. - [wei/pull](https://github.com/wei/pull) - Keep your forks up-to-date via automated PRs - [vimtor/action-zip](https://github.com/vimtor/action-zip) - Action for zipping files easily - [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) - Automatically Commit changed Files back to GitHub with GitHub Actions for the 80% use case. - [PaulHatch/semantic-version](https://github.com/PaulHatch/semantic-version) - A GitHub Action to generate semantic version from a git repository's commit history ⭐ - [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) - GitHub Action to cancel previous running workflows on push - [step-security/secure-workflows](https://github.com/step-security/secure-workflows) - Secure GitHub Actions CI/CD workflows via automated remediations - [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) - A GitHub Action to download an artifact associated with given workflow and commit or other criteria - [myoung34/docker-github-actions-runner](https://github.com/myoung34/docker-github-actions-runner) - This will run the new self-hosted github actions runners with docker-in-docker - [webiny/action-conventional-commits](https://github.com/webiny/action-conventional-commits) - Ensures that all commits are following the conventional-commits standard. - [EnricoMi/publish-unit-test-result-action](https://github.com/EnricoMi/publish-unit-test-result-action) - GitHub Action to publish unit test results on GitHub - [phoenix-actions/test-reporting](https://github.com/phoenix-actions/test-reporting) - Displays test results from popular testing frameworks directly in GitHub - [peter-murray/workflow-application-token-action](https://github.com/peter-murray/workflow-application-token-action) - GitHub Action that will get a scoped short lived token for Actions workflows using a GitHub Application. - [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) - Official GitHub action for golangci-lint from its authors ## 🚀 Samples - [actions/starter-workflows](https://github.com/actions/starter-workflows) - Accelerating new GitHub Actions workflows ⭐⭐ - [linkdotnet/deployment-template](https://github.com/linkdotnet/deployment-template/blob/main/.github/workflows) - [anuraj/MinimalApi](https://github.com/anuraj/MinimalApi) - ASP.NET Core 7.0 - Minimal API Example - Todo API implementation using ASP.NET Core Minimal API, Entity Framework Core, Token authentication, Versioning, Unit Testing, Integration Testing and Open API. - [testcontainers/testcontainers-dotnet](https://github.com/testcontainers/testcontainers-dotnet) ⭐ - [giraffe-fsharp/Giraffe](https://github.com/giraffe-fsharp/Giraffe/blob/master/.github/workflows/build.yml) - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing/tree/release/.github/workflows) - [colindembovsky/dotnet-actions-v-pipelines](https://github.com/colindembovsky/dotnet-actions-v-pipelines) - [wenqiglantz/reusable-workflows-modules](https://github.com/wenqiglantz/reusable-workflows-modules) ⭐ - [GuillaumeFalourd/poc-github-actions](https://github.com/GuillaumeFalourd/poc-github-actions) ⭐⭐ - Various proofs of concept examples using Github Actions - [LEGO/AsyncAPI.NET](https://github.com/LEGO/AsyncAPI.NET/tree/main/.github/workflows) ================================================ FILE: docs/devops/ci-cd/jenkins.md ================================================ # Jenkins ## 📕 Articles - [Up and running Jenkins on local Kubernetes cluster](https://medium.com/creditorwatch/up-and-running-jenkins-on-local-kubernetes-cluster-fbf8ec245ce5) ================================================ FILE: docs/devops/containerd.md ================================================ # Containerd ## 📘 Resources - [Containerd GitHub](https://github.com/containerd/containerd) - An open and reliable container runtime ## 📕 Articles - [containerd development with multipass](https://blog.alexellis.io/containerd-development-multipass/) ================================================ FILE: docs/devops/docker/docker-compose.md ================================================ # Docker Compose ## 📘 Resources - [Docker Compose GitHub](https://github.com/docker/compose) - [Composerize](https://www.composerize.com/) - [docker/awesome-compose](https://github.com/docker/awesome-compose) ## 📕 Articles - [Speed Up Docker Compose with Parallel Builds](https://ardalis.com/speed-up-docker-compose-with-parallel-builds/) - [How to Use Docker Compose to Run Multiple Instances of a Service in Development](https://pspdfkit.com/blog/2018/how-to-use-docker-compose-to-run-multiple-instances-of-a-service-in-development/) - [Docker Compose scale with Dynamic Configuration - Part 1](https://tarunlalwani.com/post/docker-compose-scale-with-dynamic-configuration-part-1/) - [Docker-Compose Scale](https://linuxhint.com/docker_compose_scale/) - [Multi-Container ASP.NET Core App with Docker Compose](https://www.yogihosting.com/docker-compose-aspnet-core/) - [Best Practices Around Production Ready Web Apps with Docker Compose](https://nickjanetakis.com/blog/best-practices-around-production-ready-web-apps-with-docker-compose) - [Set up Docker-Compose for ASP .NET Core 3.1 Microservices](https://www.programmingwithwolfgang.com/set-up-docker-compose-for-asp-net-core-3-1-microservices) - [How to rebuild docker container in docker-compose.yml?](https://stackoverflow.com/questions/36884991/how-to-rebuild-docker-container-in-docker-compose-yml) - [How to Pass Environment Variables to Docker Containers](https://www.cloudsavvyit.com/14081/how-to-pass-environment-variables-to-docker-containers/) - [How to Pass Environment Variables to Docker Containers](https://www.cloudsavvyit.com/14081/how-to-pass-environment-variables-to-docker-containers/) - [Step by step guide on utilising Docker Compose with Asp.Net Core, SQL Server](https://dev.to/moe23/step-by-step-guide-on-utilising-docker-compose-with-asp-net-core-sql-server-2e54) - [Docker compose an ASP NET Core application with SQL Server](https://dotnetthoughts.net/docker-compose-asp-net-core-application/) - [CRUD Operations in ASP.NET Core and SQL Server with Docker](https://www.yogihosting.com/docker-aspnet-core-sql-server-crud/) - [How do I change timezone in a docker container?](https://stackoverflow.com/questions/57607381/how-do-i-change-timezone-in-a-docker-container) - [Change TimeZone in Docker and OCI compliant Containers](https://mohitgoyal.co/2021/03/02/change-timezone-in-docker-and-oci-compliant-containers/) - [Ways to set environment variables in Compose](https://docs.docker.com/compose/environment-variables/set-environment-variables/) - [Use an environment file](https://docs.docker.com/compose/environment-variables/env-file/) - [Share Compose configurations between files and projects](https://docs.docker.com/compose/extends/) - [Docker Tip #57: Using Build and Image in the Same Docker Compose Service](https://nickjanetakis.com/blog/docker-tip-57-using-build-and-image-in-the-same-docker-compose-service) - [Docker Compose keep container running](https://stackoverflow.com/questions/38546755/docker-compose-keep-container-running) - [Interactive Shell Using Docker Compose](https://www.baeldung.com/ops/docker-compose-interactive-shell) - [Hosting ASP.NET Core images with Docker Compose over HTTPS](https://learn.microsoft.com/en-us/aspnet/core/security/docker-compose-https?view=aspnetcore-7.0) - [How to Secure Sensitive Data With Docker Compose Secrets](https://www.howtogeek.com/devops/how-to-secure-sensitive-data-with-docker-compose-secrets/) - [How to Keep Docker Secrets When Working with Sensitive Data?](https://www.cherryservers.com/blog/how-to-keep-docker-secrets-when-working-with-sensitive-data) ## 📺 Videos - [Ultimate Docker Compose Tutorial](https://www.youtube.com/watch?v=SXwC9fSwct8) - [Best Practices Around Production Ready Web Apps with Docker Compose](https://www.youtube.com/watch?v=T--X3v2pwtU) - [Docker Compose will BLOW your MIND!! (a tutorial)](https://www.youtube.com/watch?v=DM65_JyGxCo) ## 📦 Libraries - [Wowu/docker-rollout](https://github.com/Wowu/docker-rollout) - Zero Downtime Deployment for Docker Compose - [kubernetes/kompose](https://github.com/kubernetes/kompose) - Convert Compose to Kubernetes - [`dokku/dokku`](https://github.com/dokku/dokku) - A docker-powered PaaS that helps you build and manage the lifecycle of applications ## 🚀 Samples - [twzhangyang/RestAirline](https://github.com/twzhangyang/RestAirline) - DDD+CQRS+EventSourcing+Hypermedia API+ASP.NET Core 3.1+Masstransit+terraform+docker+k8s - [WolfgangOfner/MicroserviceDemo](https://github.com/WolfgangOfner/MicroserviceDemo) - This is a demo with two ASP .NET 5 microservices using RabbitMQ and Docker - [dotnet-architecture/eShopOnContainers/docker-compose](https://github.com/dotnet-architecture/eShopOnContainers/blob/main/src/docker-compose.yml) - [microservices-demo/microservices-demo/docker-compose](https://github.com/microservices-demo/microservices-demo/tree/master/deploy/docker-compose) - Deployment scripts & config for Sock Shop - [madslundt/NetCoreMicroservicesSample/docker-compose](https://github.com/madslundt/NetCoreMicroservicesSample/tree/master/Compose) - Sample using micro services in .NET Core 3.1 Focusing on clean code - [twzhangyang/RestAirline/docker-compose](https://github.com/twzhangyang/RestAirline/blob/master/docker-compose/docker-compose.yml) - DDD+CQRS+EventSourcing+Hypermedia API+ASP.NET Core 3.1+Masstransit+terraform+docker+k8s - [https://github.com/oskardudycz/EventSourcing.NetCore/docker-compose](https://github.com/oskardudycz/EventSourcing.NetCore/blob/main/Sample/ECommerce/docker/docker-compose.yml - [WolfgangOfner/MicroserviceDemo/docker-compose](https://github.com/WolfgangOfner/MicroserviceDemo/blob/master/docker-compose.yml) - [VasilisGaitanidis/master-containerized-microservices/docker-compose](https://github.com/VasilisGaitanidis/master-containerized-microservices/blob/master/src/docker-compose.yml) - [vietnam-devs/coolstore-microservices/docker-compose](https://github.com/vietnam-devs/coolstore-microservices/blob/main/docker-compose.yml) - [vietnam-devs/coolstore-microservices/docker-compose.override](https://github.com/vietnam-devs/coolstore-microservices/blob/main/docker-compose.override.yml) - [open-telemetry/opentelemetry-demo/docker-compose](https://github.com/open-telemetry/opentelemetry-demo/blob/main/docker-compose.yml) ⭐ ================================================ FILE: docs/devops/docker/docker.md ================================================ # Docker ## 📘 Resources - [Docker GitHub](https://github.com/docker) - [wsargent/docker-cheat-sheet](https://github.com/wsargent/docker-cheat-sheet) - Docker Cheat Sheet - [prakhar1989/docker-curriculum](https://docker-curriculum.com) - 🐬 A comprehensive tutorial on getting started with Docker! - docker-curriculum.com - [veggiemonk/awesome-docker](https://github.com/veggiemonk/awesome-docker) - 🐳 A curated list of Docker resources and projects - [docker/awesome-compose](https://github.com/docker/awesome-compose) - Awesome Docker Compose samples - [Pradumnasaraf/DevOps](https://github.com/Pradumnasaraf/DevOps) - This repo contains all my learning related to DevOps ## 📝 Articles - [Get to Know Docker's Ecosystem](https://nickjanetakis.com/blog/get-to-know-dockers-ecosystem#docker-daemon) - [Understanding How the Docker Daemon and Docker CLI Work Together](https://nickjanetakis.com/blog/understanding-how-the-docker-daemon-and-docker-cli-work-together) - [How to build and push Docker image with GitHub actions?](https://event-driven.io/en/how_to_buid_and_push_docker_image_with_github_actions/) - [Docker Tip #73: Connecting to a Remote Docker Daemon](https://nickjanetakis.com/blog/docker-tip-73-connecting-to-a-remote-docker-daemon) - [How to build an optimal Docker image for your application?](https://event-driven.io/en/how_to_buid_an_optimal_docker_image_for_your_application/) ⭐ - [Optimising ASP.NET Core apps in Docker - avoiding manually copying csproj files](https://andrewlock.net/optimising-asp-net-core-apps-in-docker-avoiding-manually-copying-csproj-files/) ⭐ - [Exploring the .NET Core Docker files: dotnet vs aspnetcore vs aspnetcore-build](https://andrewlock.net/exploring-the-net-core-docker-files-dotnet-vs-aspnetcore-vs-aspnetcore-build/) ⭐ - [Exploring the .NET Core 2.1 Docker files (updated): dotnet:runtime vs aspnetcore-runtime vs sdk](https://andrewlock.net/exploring-the-net-core-2-1-docker-files-dotnet-runtime-vs-aspnetcore-runtime-vs-sdk/) ⭐ - [Building ASP.NET Core apps using Cake in Docker](https://andrewlock.net/building-asp-net-core-apps-using-cake-in-docker/) - [Using Docker Hub to automatically build a Docker image for ASP.NET Core apps](https://andrewlock.net/using-docker-hub-to-automatically-build-a-docker-image-for-asp-net-core-apps/) - [DOCKER FOR .NET DEVELOPERS (PART 1)](https://www.stevejgordon.co.uk/docker-dotnet-developers-part-1) - [Dockerizing ASP.NET Core Application With Dockerfiles](https://code-maze.com/aspnetcore-app-dockerfiles/) - [Get Started Building Microservices with ASP.NET Core and Docker in Visual Studio Code](https://fullstackmark.com/post/12/get-started-building-microservices-with-asp.net-core-and-docker-in-visual-studio-code) - [Optimising .NET Core Docker images](https://benfoster.io/blog/optimising-dotnet-docker-images/) - [Defining your multi-container application with docker-compose.yml](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/multi-container-applications-docker-compose) - [Some useful Docker commands make your life easier](https://dev.to/moesmp/some-useful-docker-command-4ehi) - [Deploy a Docker based ASP.NET Core app to Azure](https://www.yogihosting.com/docker-aspnet-core-azure/) - [Create first ASP.NET Core App in a Docker Container](https://www.yogihosting.com/docker-aspnet-core-app/) - [Multi-Container ASP.NET Core App with Docker Compose](https://www.yogihosting.com/docker-compose-aspnet-core/) - [How Visual Studio builds containerized apps](https://docs.microsoft.com/en-us/visualstudio/containers/container-build?view=vs-2019) - [Creating Docker multi-arch images for ARM64 from Windows](https://andrewlock.net/creating-multi-arch-docker-images-for-arm64-from-windows/) - [6 Things To Know When Dockerizing Microsoft .NET Apps in Production](https://levelup.gitconnected.com/6-things-to-know-when-dockerizing-microsoft-net-apps-in-production-45b8c27a41b0) - [Beginning Docker](https://sookocheff.com/post/docker/beginning-docker/) - [Docker Series](https://code-maze.com/docker-series/) - [Dockerize an ASP .NET Core Microservice and RabbitMQ](https://www.programmingwithwolfgang.com/dockerize-an-asp-net-core-microservice-and-rabbitmq) - [ASP .NET Core with HTTPS in Docker](https://www.programmingwithwolfgang.com/asp-net-core-with-https-in-docker) - [Set up Docker-Compose for ASP .NET Core 3.1 Microservices](https://www.programmingwithwolfgang.com/set-up-docker-compose-for-asp-net-core-3-1-microservices) - [Hosting ASP.NET Core images with Docker over HTTPS](https://docs.microsoft.com/en-us/aspnet/core/security/docker-https) - [ASP.NET Core APP with HTTPS in Docker](https://www.yogihosting.com/docker-https-aspnet-core/) - [How to Pass Environment Variables to Docker Containers](https://www.cloudsavvyit.com/14081/how-to-pass-environment-variables-to-docker-containers/) - [Step by step guide on utilising Docker Compose with Asp.Net Core, SQL Server](https://dev.to/moe23/step-by-step-guide-on-utilising-docker-compose-with-asp-net-core-sql-server-2e54) - [CRUD Operations in ASP.NET Core and SQL Server with Docker](https://www.yogihosting.com/docker-aspnet-core-sql-server-crud/) - [Docker SQL bind: An attempt was made to access a socket in a way forbidden by its access permissions](https://stackoverflow.com/questions/57316744/docker-sql-bind-an-attempt-was-made-to-access-a-socket-in-a-way-forbidden-by-it) - [ASP.NET Docker Gotchas and Workarounds](https://khalidabuhakmeh.com/aspnet-docker-gotchas-and-workarounds) - [The Microsoft author signing certificate will be updated as soon as November 1st, 2020](https://devblogs.microsoft.com/nuget/microsoft-author-signing-certificate-update/) - [5 ways to change time in Docker container](https://bobcares.com/blog/change-time-in-docker-container/) - [Change TimeZone in Docker and OCI compliant Containers](https://mohitgoyal.co/2021/03/02/change-timezone-in-docker-and-oci-compliant-containers/) - [Attach to a running container](https://code.visualstudio.com/docs/remote/attach-container) - [Create a development container](https://code.visualstudio.com/docs/remote/create-dev-container) - [Debugging ASP.NET Core apps in a local Docker container `Rider`](https://blog.jetbrains.com/dotnet/2018/07/18/debugging-asp-net-core-apps-local-docker-container/) - [Ports are not available: listen tcp 0.0.0.0/50070: bind: An attempt was made to access a socket in a way forbidden by its access permissions](https://stackoverflow.com/questions/65272764/ports-are-not-available-listen-tcp-0-0-0-0-50070-bind-an-attempt-was-made-to) - [Optimising ASP.NET Core apps in Docker - avoiding manually copying csproj files](https://andrewlock.net/optimising-asp-net-core-apps-in-docker-avoiding-manually-copying-csproj-files/) - [Optimising ASP.NET Core apps in Docker - avoiding manually copying csproj files (Part 2)](https://andrewlock.net/optimising-asp-net-core-apps-in-docker-avoiding-manually-copying-csproj-files-part-2/) - [Setting Up Docker for Windows and WSL to Work Flawlessly](https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly) - [Announcing built-in container support for the .NET SDK](https://devblogs.microsoft.com/dotnet/announcing-builtin-container-support-for-the-dotnet-sdk/) - [Linting a .NET 6 app Dockerfile using Hadolint, dockerfile_lint and Azure Pipelines](https://www.mytechramblings.com/posts/linting-a-dotnet-app-dockerfile-using-hadolint-dockerfile-lint-and-azure-pipelines/) - [Docker build caching for .NET applications done right with dotnet-subset](https://blog.nimbleways.com/docker-build-caching-for-dotnet-applications-done-right-with-dotnet-subset/) - [Developing ASP.NET Core apps in Docker - Live Recompilation](https://tymisko.hashnode.dev/developing-aspnet-core-apps-in-docker-live-recompilation) - [.NET 6 is now in Ubuntu 22.04](https://devblogs.microsoft.com/dotnet/dotnet-6-is-now-in-ubuntu-2204/) - [Announcing built-in container support for the .NET SDK](https://devblogs.microsoft.com/dotnet/announcing-builtin-container-support-for-the-dotnet-sdk/) - [Tutorial: Containerize a .NET app](https://learn.microsoft.com/en-us/dotnet/core/docker/build-container?tabs=windows) - [Containerize a .NET app with dotnet publish](https://learn.microsoft.com/en-us/dotnet/core/docker/publish-as-container) - [.NET 7 SDK built-in container support and Ubuntu Chiseled](https://laurentkempe.com/2022/11/14/dotnet-7-sdk-built-in-container-support-and-ubuntu-chiseled/) - [Experimenting with .NET 7, WASM, and WASI on Docker](https://laurentkempe.com/2022/10/31/experimenting-with-dotnet-7-wasm-and-wasi-on-docker/) - [Trying out the built-in container support for the .NET SDK](https://www.mytechramblings.com/posts/trying-out-the-built-in-container-support-for-the-dotnet-7-sdk/) - [Docker import/export vs. load/save](https://pspdfkit.com/blog/2019/docker-import-export-vs-load-save/) - [Publishing Images With GitHub Actions](https://www.kenmuse.com/blog/publishing-images-with-github-actions/) - [Creating a generalised Docker image for building ASP.NET Core apps using ONBUILD](https://andrewlock.net/creating-a-generalised-docker-image-for-building-asp-net-core-apps-using-onbuild/) ⭐ - [Optimizing your .NET Core Docker image size with multi-stage builds](https://medium.com/@chrislewisdev/optimizing-your-net-core-docker-image-size-with-multi-stage-builds-778c577121d) ⭐⭐ - [Multi-stage builds](https://docs.docker.com/build/building/multi-stage/) ⭐⭐ - [Docker Tutorial – Introduction & Getting Started With Docker](https://spacelift.io/blog/docker-tutorial) - [Docker Build Process for .NET Applications](https://marcroussy.com/2020/05/01/docker-build-process-for-dotnet/) ⭐ - [Understanding the Docker Build Context (Why You Should Use Dockerignore)](https://www.howtogeek.com/devops/understanding-the-docker-build-context-why-you-should-use-dockerignore/) - [How to Debug Dockerized .NET Core Apps in VS Code](https://www.freecodecamp.org/news/how-to-debug-dockerized-net-core-apps-in-vs-code/) ⭐ - [Demystifying Docker: .NET 6 on Docker + Docker Debugging](https://amelspahic.com/net-6-on-docker-with-debugging) ⭐ - [docker `network create`](https://docs.docker.com/engine/reference/commandline/network_create/) ⭐ - [DEBUGGING YOUR .NET CORE IN DOCKER APPLICATIONS WITH VS CODE](https://www.aaron-powell.com/posts/2019-04-04-debugging-dotnet-in-docker-with-vscode/) ⭐ - [Attaching to remote processes](https://github.com/OmniSharp/omnisharp-vscode/wiki/Attaching-to-remote-processes) - [How to debug a .NET Core app in Docker with VSCode](https://www.richard-banks.org/2018/07/debugging-core-in-docker.html) ⭐⭐ - [Get started with Docker remote containers on WSL 2](https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers) ⭐ - [Docker Desktop WSL 2 backend on Windows](https://docs.docker.com/desktop/windows/wsl/) ⭐ - [How to configure Docker Desktop to work with the WSL](https://tutorials.releaseworksacademy.com/learn/how-to-configure-docker-desktop-to-work-with-the-wsl.html) - [Setting Up Docker for Windows and WSL to Work Flawlessly](https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly) ⭐ - [How to properly override the ENTRYPOINT using docker run](https://oprea.rocks/blog/how-to-properly-override-the-entrypoint-using-docker-run) - [Docker RUN vs CMD vs ENTRYPOINT](https://codewithyury.com/docker-run-vs-cmd-vs-entrypoint/) ⭐ - [Running a Docker container as a non-root user](https://medium.com/redbubble/running-a-docker-container-as-a-non-root-user-7d2e00f8ee15) - [Using Docker Buildkit --mount=type=cache for caching Nuget packages for .NET 5 dockerfile](https://stackoverflow.com/questions/69464184/using-docker-buildkit-mount-type-cache-for-caching-nuget-packages-for-net-5-d) - [Optimizing builds with cache management](https://docs.docker.com/build/cache/) ⭐ - [Best practices for writing Dockerfiles](https://docs.docker.com/develop/develop-images/dockerfile_best-practices) ⭐ - [Speed up pip downloads in Docker with BuildKit’s new caching](https://pythonspeed.com/articles/docker-cache-pip-downloads/) ⭐ - [How to Keep Docker Container Running for Debugging](https://devopscube.com/keep-docker-container-running/) - [Running Docker Containers Indefinitely](https://www.baeldung.com/ops/running-docker-containers-indefinitely) - [Removing unused intermediate docker images automatically](https://medium.com/@cikupin/removing-unused-intermediate-docker-images-automatically-25e453c514ea) - [Enforce HTTPS in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/enforcing-ssl) - [Hosting ASP.NET Core images with Docker over HTTPS](https://learn.microsoft.com/en-us/aspnet/core/security/docker-https) - [Using Docker Secrets during Development](https://blog.mikesir87.io/2017/05/using-docker-secrets-during-development/) - [How to Keep Docker Secrets When Working with Sensitive Data?](https://www.cherryservers.com/blog/how-to-keep-docker-secrets-when-working-with-sensitive-data) - [Docker and .Net — Environment variables and appsettings.json](https://levelup.gitconnected.com/docker-environment-variables-appsettings-json-net-bdac052bf3db) - [Hot-Reload .NET Configuration in Kubernetes with ConfigMaps](https://www.thorsten-hans.com/hot-reload-net-configuration-in-kubernetes-with-configmaps/) ⭐ - [Secure your .NET cloud apps with rootless Linux Containers](https://devblogs.microsoft.com/dotnet/securing-containers-with-rootless/) - [Testing Chiseled Ubuntu container images with .NET](https://www.mytechramblings.com/posts/testing-chiseled-ubuntu-containers-with-dotnet/) - [Creating a Private Local Docker Registry in 5 Minutes](https://dev.to/docker/creating-a-private-local-docker-registry-in-5-minutes-2dnl) - [4 Easy Steps to Set Up a Private Docker Registry on Ubuntu](https://gcore.com/learning/4-easy-steps-to-set-up-a-private-docker-registry-on-ubuntu/) - [Running Artifactory 7 and Postgres using Docker Compose V2](https://wangler.io/running-artifactory-7-using-docker-compose-v2/) - [Deploying JFrog Container Registry within a Dockerized infrastructure](https://medium.com/@tomer.klein/deploying-jfrog-container-registry-within-a-dockerized-infrastructure-a3f67328bd27) - [Create a Private Docker Registry with Nexus](https://www.ivankrizsan.se/2016/06/09/create-a-private-docker-registry/) - [Streamline your container build and publish with .NET 8](https://devblogs.microsoft.com/dotnet/streamline-container-build-dotnet-8/) - [How To Run Docker in Docker Container [3 Easy Methods]](https://devopscube.com/run-docker-in-docker/) ## 📹 Videos - [Complete Docker Course - From BEGINNER to PRO! (Learn Containers)](https://www.youtube.com/watch?v=RqTEHSBrYFw) - [Docker Crash Course for Absolute Beginners ](https://www.youtube.com/watch?v=pg19Z8LL06w) - [Deploy a .NET Core API with Docker (Step-by-Step)](https://www.youtube.com/watch?v=f0lMGPB10bM) - [Docker Tutorial for Beginners [FULL COURSE in 3 Hours](https://www.youtube.com/watch?v=3c-iBn73dDE) - [Docker Tutorial for Beginners - A Full DevOps Course on How to Run Applications in Containers](https://www.youtube.com/watch?v=fqMOX6JJhGo) - [How to push a container image to a Docker Repo | Azure Tips and Tricks](https://www.youtube.com/watch?v=r_tGl4zF1ZQ) - [Dockerize .NET 6 in 10 Minutes](https://www.youtube.com/watch?v=3s-RfwvijpY) - [Docker networking is CRAZY!! (you NEED to learn it)](https://www.youtube.com/watch?v=bKFMS5C4CG0) - [Why you no longer need a Dockerfile in .NET 7](https://www.youtube.com/watch?v=BV_f2XnqlRE) - [Debugging .NET Core in Docker with VSCode](https://www.youtube.com/watch?v=ds2bud0ZYTY) ⭐ ## 📦 Libraries - [`wagoodman/dive`](https://github.com/wagoodman/dive) - A tool for exploring each layer in a docker image - [`hadolint/hadolint`](https://github.com/hadolint/hadolint) - Dockerfile linter, validate inline bash, written in Haskell - [`projectatomic/dockerfile_lint`](https://github.com/projectatomic/dockerfile_lint) - [`nicolaka/netshoot`](https://github.com/nicolaka/netshoot) - a Docker + Kubernetes network trouble-shooting swiss-army container - [`mariotoffia/FluentDocker`](https://github.com/mariotoffia/FluentDocker) - Commands, Services and Fluent API for docker, docker-compose & docker-machine, for win/mac/linux and native docker in c# - [`docker-slim/docker-slim`](https://github.com/docker-slim/docker-slim) - DockerSlim (docker-slim): Don't change anything in your Docker container image and minify it by up to 30x (and for compiled languages even more) making it secure too! (free and open source) - [`mariotoffia/FluentDocker`](https://github.com/mariotoffia/FluentDocker) - Use docker, docker-compose local and remote in tests and your .NET core/full framework apps via a FluentAPI - [`jesseduffield/lazydocker`](https://github.com/jesseduffield/lazydocker) - The lazier way to manage everything docker - [`worstcase/blockade`](https://github.com/worstcase/blockade) - Docker-based utility for testing network failures and partitions in distributed applications - [`hadolint/hadolint`](https://github.com/hadolint/hadolint) - Dockerfile linter, validate inline bash, written in Haskell - [`tmds/build-image`](https://github.com/tmds/build-image) - Containerize .NET apps without writing Dockerfiles. - [`Wowu/docker-rollout`](https://github.com/Wowu/docker-rollout) - Zero Downtime Deployment for Docker Compose - [`kubernetes/kompose`](https://github.com/kubernetes/kompose) - Convert Compose to Kubernetes - [`dokku/dokku`](https://github.com/dokku/dokku) - A docker-powered PaaS that helps you build and manage the lifecycle of applications ## 🚀 Samples - [jbw/TooBigToFailBurgerShop](https://github.com/jbw/TooBigToFailBurgerShop/tree/develop/src/services/Ordering/Ordering.API) - .NET Microservice Reference Application. It's also an over-engineered burger shop! - [VasilisGaitanidis/master-containerized-microservices](https://github.com/VasilisGaitanidis/master-containerized-microservices) - This repo contains a sample application based on a fictional eCommerce. The primary goal of this sample is to demonstrate several software-architecture concepts like: Clean Architecture, Microservices, CQRS, Event Sourcing, Publish-Subscribe Architecture, Domain Driven Design (DDD). Currently this is a work in progress. - [MesutAtasoy/Joker](https://github.com/MesutAtasoy/Joker) - An example of microservices container based application which implemented different approaches within each microservice (DDD, CQRS, Simple CRUD) - [vany0114/microservices-dotnetcore-docker-sf-k8s](https://github.com/vany0114/microservices-dotnetcore-docker-sf-k8s) - Shows an approach to work with a microservices based architecture using .Net Core, Docker, and Azure Service Fabric/Kubernetes, applying Domain Driven Design (DDD) and Comand and Query Responsibility Segregation (CQRS) and other patterns. - [mmacneil/ASPNETCoreDockerMicroservices](https://github.com/mmacneil/ASPNETCoreDockerMicroservices) - Sample project for getting off the ground with ASP.NET Core, Docker and Microservices based on the tutorial: https://fullstackmark.com/post/12/get-started-building-microservices-with-asp.net-core-and-docker-in-visual-studio-code - [WolfgangOfner/MicroserviceDemo](https://github.com/WolfgangOfner/MicroserviceDemo) - This is a demo with two ASP .NET 5 microservices using RabbitMQ and Docker - [twzhangyang/RestAirline](https://github.com/twzhangyang/RestAirline) - DDD+CQRS+EventSourcing+Hypermedia API+ASP.NET Core 3.1+Masstransit+terraform+docker+k8s - [madslundt/NetCoreMicroservicesSample](https://github.com/madslundt/NetCoreMicroservicesSample/tree/master/Compose) - Sample using micro services in .NET Core 3.1 Focusing on clean code - [baotoq/micro-commerce](https://github.com/baotoq/micro-commerce/blob/master/src/Services/Catalog/MicroCommerce.Catalog.API/Dockerfile) - React, Nextjs, ASP.NET Core 5.0, IdentityServer, Dapr, Azure pipeline, K8S, SonarQube - [oskardudycz/EventSourcing.NetCore/Dockerfile](https://github.com/oskardudycz/EventSourcing.NetCore/blob/main/Dockerfile) - [vietnam-devs/coolstore-microservices/deploys/dockers](https://github.com/vietnam-devs/coolstore-microservices/tree/main/deploys/dockers) - [vietnam-devs/coolstore-microservices/Dockerfile](https://github.com/vietnam-devs/coolstore-microservices/blob/main/src/Services/ProductCatalog/ProductCatalogService.Api/Dockerfile) - [thangchung/clean-architecture-dotnet/Dockerfile](https://github.com/thangchung/clean-architecture-dotnet/blob/main/samples/Product/ProductService.Api/Dockerfile) - [laurentkempe/ChiseledDocker](https://github.com/laurentkempe/ChiseledDocker) - [richlander/container-workshop](https://github.com/richlander/container-workshop) - Documents fundamental .NET Container workflows ## Registries - [distribution/distribution](https://github.com/distribution/distribution) - The toolkit to pack, ship, store, and deliver container content - [Quay.io](https://quay.io/) - [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) - [Docker Container Registry](https://hub.docker.com/) - [JFrog Docker Registry](https://jfrog.com/help/r/jfrog-artifactory-documentation/set-up-jfrog-container-registry-self-hosted-version) - [sonatype-nexus-oss](https://www.sonatype.com/products/sonatype-nexus-oss) ================================================ FILE: docs/devops/gitops.md ================================================ # Gitops ## Resources - [akuity/awesome-argo](https://github.com/akuity/awesome-argo) - A curated list of awesome projects and resources related to Argo (a CNCF graduated project) ## Libraries - [argoproj/argo-workflows](https://github.com/argoproj/argo-workflows) - Workflow engine for Kubernetes - [argoproj/argo-cd](https://github.com/argoproj/argo-cd) - Declarative continuous deployment for Kubernetes. - [fluxcd/flux2](https://github.com/fluxcd/flux2) - Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit. - [fluxcd/flagger](https://github.com/fluxcd/flagger) - Progressive delivery Kubernetes operator (Canary, A/B Testing and Blue/Green deployments) ## Samples - [stefanprodan/gitops-istio](https://github.com/stefanprodan/gitops-istio) - A GitOps recipe for Progressive Delivery with Flux v2, Flagger and Istio - [bravecobra/k8s-e2e](https://github.com/bravecobra/k8s-e2e) - [stefanprodan/podinfo](https://github.com/stefanprodan/podinfo) Go microservice template for Kubernetes ================================================ FILE: docs/devops/kubernetes/debuging-development.md ================================================ # Debugging & Development ## Articles - [Getting Started with Telepresence on Windows](https://www.getambassador.io/resources/getting-started-with-telepresence-on-windows/) - [Developing and debugging services locally using telepresence](https://kubernetes.io/docs/tasks/debug/debug-cluster/local-debugging/) - [Using Telepresence 2 for Kubernetes debugging and local development](https://codefresh.io/blog/telepresence-2-local-development/) - [An alternative to Telepresence 2: Gefyra](https://unikube.io/blog/alternative-to-telepresence-2-gefyra/) - [Debugging Microservices Locally with mirrord](https://blog.stackademic.com/mastering-local-microservices-debugging-with-mirrord-0a99443c1544) - [Comparing Local Kubernetes Development Tools: Telepresence, Gefyra, and mirrord](https://kubernetes.io/blog/2023/09/12/local-k8s-development-tools/) - [mirrord as an alternative to Telepresence](https://metalbear.co/blog/mirrord-as-an-alternative-to-telepresence/) - [Simplifying Kubernetes Development: Your Go-To Tools Guide](https://semaphoreci.com/blog/kubernetes-development-tools) - [Getting Started with Skaffold for Kubernetes Deployments](https://speedscale.com/blog/getting-started-with-skaffold/) - [How to Simplify Your Local Kubernetes Development With Skaffold](https://dev.to/otomato_io/local-kubernetes-development-with-skaffold-i0k) - [How to Speed Up Your Local Kubernetes Development With DevSpace](https://dev.to/otomato_io/how-to-speed-up-your-local-kubernetes-development-with-devspace-4ngb) - [Getting Started With Skaffold](https://dev.to/thenjdevopsguy/getting-started-with-skaffold-5120) - [Accelerate your local development environment with Tilt](https://dev.to/eminetto/accelerate-your-local-development-environment-with-tilt-46n7) - [Garden.io: what is it and why should you be using it?](https://dev.to/bcostaaa01/gardenio-what-is-it-and-why-should-you-be-using-it-4m7g) ## Videos - [How to debug Kubernetes? (Deployments, Services & Ingress)](https://www.youtube.com/watch?v=hixs2GIGrUw) - [How We Use Telepresence 2 at Ambassador Labs](https://www.youtube.com/watch?v=nN1yF6RCaW4) - [Intro: Telepresence: Fast Local-to-Remote Development for Kubernetes - Daniel Bryant, Datawire](https://www.youtube.com/watch?v=9eyHSjbZwR8) - [How to setup local development environment with Kubernetes and Skaffold](https://www.youtube.com/watch?v=9A3paYRHvDQ) - [Tilt for Kubernetes: Streamline Your Development Workflow](https://www.youtube.com/watch?v=JRc967vAkGM) ## Libraries - [telepresenceio/telepresence](https://github.com/telepresenceio/telepresence) - Local development against a remote Kubernetes or OpenShift cluster - [metalbear-co/mirrord](https://github.com/metalbear-co/mirrord) - Connect your local process and your cloud environment, and run local code in cloud conditions - [gefyrahq/gefyra](https://github.com/gefyrahq/gefyra) - Blazingly-fast, rock-solid, local application development with Kubernetes. - [GoogleContainerTools/skaffold](https://github.com/GoogleContainerTools/skaffold) - Easy and Repeatable Kubernetes Development ================================================ FILE: docs/devops/kubernetes/deployment-strategies.md ================================================ # Deployment Strategies ## 📕 Articles - [Six Strategies for Application Deployment](https://thenewstack.io/deployment-strategies/) - [Kubernetes deployment strategies](https://blog.container-solutions.com/kubernetes-deployment-strategies) ## 📺 Videos - [Webinar: Deployment Strategies on Kubernetes](https://www.youtube.com/watch?v=1oPhfKye5Pg) - [Deployment Strategies in Kubernetes | #1 | K8s Primer | Tech Primers](https://www.youtube.com/watch?v=4AUnI58ZI6M) - [deployment strategies in kubernetes | recreate | rolling update | blue/green | canary](https://www.youtube.com/watch?v=efiMiaFjtn8) - [Application Deployment Strategies](https://www.youtube.com/watch?v=OKM0tTYxQbk) - [Most Common Kubernetes Deployment Strategies (Examples & Code)](https://www.youtube.com/watch?v=lxc4EXZOOvE) ## Samples - [antonputra/tutorials/lessons/171](https://github.com/antonputra/tutorials/tree/main/lessons/171) ================================================ FILE: docs/devops/kubernetes/deployment-tools/argo-cd.md ================================================ # ArgoCD ## 📘 Resources - [ArgoCD GitHub](https://github.com/argoproj/argo-cd/) - [ArgoCD docs](https://argo-cd.readthedocs.io/en/stable/) ## 📺 Videos - [ArgoCD Tutorial for Beginners: GitOps CD for Kubernetes #1](https://www.youtube.com/watch?v=zGndgdGa1Tc) - [ArgoCD Image Updater: Decouple CI from CD! #2](https://www.youtube.com/watch?v=cTQybeDzngU) - [ArgoCD Notifications (Successful/Failed Deployments)](https://www.youtube.com/watch?v=OP6IRsNiB4w) - [How to Set Up ArgoCD for Production? (EKS - ECR - Helm - App of Apps - Image Updater - GitOps)](https://www.youtube.com/watch?v=_G_RY5trQao) - [Argo CD continuous deployment to Kubernetes - Part 1](https://www.youtube.com/watch?v=HX24uMKmJRw) - [Deploying Argo CD in Kubernetes | Creating your first App](https://www.youtube.com/watch?v=vSnVhJkyJBw) - [ArgoCD Tutorial for Beginners | GitOps CD for Kubernetes](https://www.youtube.com/watch?v=MeU5_k9ssrs) - [ArgoCD Starter Guide: Full Tutorial for ArgoCD in Kubernetes](https://www.youtube.com/watch?v=JLrR9RV9AFA) ## 🚀 Samples - [argoproj/argocd-example-apps](https://github.com/argoproj/argocd-example-apps) - Example Apps to Demonstrate Argo CD ================================================ FILE: docs/devops/kubernetes/deployment-tools/flux.md ================================================ # Flux ## 📘 Resources [Flux GitHub](https://github.com/fluxcd/flux) - A tool for turning container images into running Kubernetes services. ## 📕 Articles - [GitOps using Helm3 and Flux for a Node.js and Express.js Microservice](https://www.civo.com/learn/gitops-using-helm3-and-flux-for-an-node-js-and-express-js-microservice) ## 🚀 Samples - [fluxcd/flux2-kustomize-helm-example](https://github.com/fluxcd/flux2-kustomize-helm-example) - A GitOps workflow example for multi-env deployments with Flux, Kustomize and Helm. ================================================ FILE: docs/devops/kubernetes/deployment-tools/helm.md ================================================ # Helm [Helm Website](https://helm.sh/) ## 📕 Articles - [Introducing Gitpod for Open Source](https://www.gitpod.io/blog/gitpod-for-opensource) - [Helm Docs](https://helm.sh/docs/) - [Guide to Helm 3 With an Express.js Microservice](https://www.civo.com/learn/guide-to-helm-3-with-an-express-js-microservice) - [GitOps using Helm3 and Flux for a Node.js and Express.js Microservice](https://www.civo.com/learn/gitops-using-helm3-and-flux-for-an-node-js-and-express-js-microservice) - [How to use Helm for ASP.NET Core with Kubernetes](https://www.yogihosting.com/helm-charts-aspnet-core-kubernetes/) - [Prometheus Helm Chart not connecting to Cluster](https://www.reddit.com/r/kubernetes/comments/jgprfb/prometheus_helm_chart_not_connecting_to_cluster/) - [Why we moved from Helm to Gitpod Installer](https://www.gitpod.io/blog/gitpod-installer) - [Getting Started With Helm 3](https://www.thorsten-hans.com/getting-started-with-helm3/) - [When and How to Use Helm and Kustomize Together](https://trstringer.com/helm-kustomize/) - [How to Create Helm Chart [Comprehensive Beginners Guide]](https://devopscube.com/create-helm-chart/) ⭐ - [Combining Helm and Kustomize: When, Why, and How?](https://ahmedelfakharany.com/combining-helm-and-kustomize-when-why-and-how-96a3483310db) - [Helm vs Kustomize: why, when, and how](https://ahmedelfakharany.com/helm-vs-kustomize-why-when-and-how-5d5ba0f80234) - [What the Helm?!](https://dev.to/cyclops-ui/what-the-helm-155f) ## 📺 Videos - [The Automation Challenge: Kubernetes Operators vs Helm Charts • Ana-Maria Mihalceanu • GOTO 2021](https://www.youtube.com/watch?v=dGx8PjmWkyM) - [What is Helm in Kubernetes? Helm and Helm Charts explained](https://www.youtube.com/watch?v=-ykwb1d0DXU) - [Helm and Kubernetes Tutorial - Introduction](https://www.youtube.com/watch?v=9cwjtN3gkD4) - [Creating your first Helm chart](https://www.youtube.com/watch?v=3GPpm2nZb2s) - [How to set up a local Helm chart repository](https://www.youtube.com/watch?v=hSk_r-CCvLE) - [Building Helm Charts From the Ground Up: An Introduction to Kubernetes [I] - Amy Chen, Heptio](https://www.youtube.com/watch?v=vQX5nokoqrQ) - [Helm Mini Course Part 1](https://www.youtube.com/watch?v=x77NzZxj670) - [Introduction to Helm | Kubernetes Tutorial | Beginners Guide](https://www.youtube.com/watch?v=5_J7RWLLVeQ) - [Package Management with Helm // Kubernetes Tutorial](https://www.youtube.com/watch?v=zka4lJbA-y4) - [What is Helm? | Helm Concepts Explained | KodeKloud](https://www.youtube.com/watch?v=kJscDZfHXrQ) - [Helm vs Kustomize - The Fight Between Templating and Patching in Kubernetes](https://www.youtube.com/watch?v=ZMFYSm0ldQ0) ## Tools - [komodorio/helm-dashboard](https://github.com/komodorio/helm-dashboard) - The missing UI for Helm - visualize your releases - [arttor/helmify](https://github.com/arttor/helmify) - Creates Helm chart from Kubernetes yaml - [helm-unittest/helm-unittest](https://github.com/helm-unittest/helm-unittest) - BDD styled unit test framework for Kubernetes Helm charts as a Helm plugin ## 🚀 Samples - [kimcu-on-thenet/dnc-k8s-helm](https://github.com/kimcu-on-thenet/dnc-k8s-helm) - An extremely simple .NET Core web api within EntityFrameworkCore which will be deployed in k8s by both kubectl and helm - [okteto/movies-with-helm](https://github.com/okteto/movies-with-helm) - Movies App deployed with Helm - [thinktecture-labs/cloud-native-sample](https://github.com/thinktecture-labs/cloud-native-sample/tree/main/charts) - Sample application to demonstrate how to build, orchestrate, and automate a polyglot cloud-native application - [https://github.com/energywebfoundation/generic-microservices-helm](https://github.com/energywebfoundation/generic-microservices-helm) - Generic Helm Chart for Deployments - [https://github.com/cetic/helm-microservice](https://github.com/cetic/helm-microservice) - A Helm Chart for DRY microservice deployments - [stefanprodan/podinfo](https://github.com/stefanprodan/podinfo) - Go microservice template for Kubernetes - [hextrust/generic-helm-chart](https://github.com/hextrust/generic-helm-chart) - Helm Chart Template for standard microservice provisioning - [stakater/application](https://github.com/stakater/application) - Generic helm chart for all kind of applications - [baloise-incubator/generic-chart](https://github.com/baloise-incubator/generic-chart) - General purpose Helm Chart ## Public Charts - [bitnami/charts](https://github.com/bitnami/charts) - Bitnami Helm Charts - [artifacthub/hub](https://github.com/artifacthub/hub) - Find, install and publish Cloud Native packages ================================================ FILE: docs/devops/kubernetes/deployment-tools/jenkins.md ================================================ ================================================ FILE: docs/devops/kubernetes/deployment-tools/kubernetes-operator.md ================================================ # Kubernetes Operator ## 📺 Videos - [The Automation Challenge: Kubernetes Operators vs Helm Charts • Ana-Maria Mihalceanu • GOTO 2021](https://www.youtube.com/watch?v=dGx8PjmWkyM) - [Kubernetes Operator simply explained in 10 mins](https://www.youtube.com/watch?v=ha3LjlD6g7g) - [Kubernetes 101 - Episode 7 - Hello, Operator!](https://www.youtube.com/watch?v=Q7G6DBaIJ1c) ================================================ FILE: docs/devops/kubernetes/deployment-tools/kustomize.md ================================================ # Kustomize ## 📘 Resources - [kubernetes-sigs/kustomize](https://github.com/kubernetes-sigs/kustomize) - Customization of kubernetes YAML configurations ## Articles - [Kustomize - Docs](https://kubectl.docs.kubernetes.io/guides/introduction/kustomize/) - [Kubernetes: Merge Multiple YAML Files Into One](https://levelup.gitconnected.com/kubernetes-merge-multiple-yaml-into-one-e8844479a73a) - [Kubernetes: Change base YAML config for different environments prod/test using Kustomize](https://levelup.gitconnected.com/kubernetes-change-base-yaml-config-for-different-environments-prod-test-6224bfb6cdd6) - [Declarative Management of Kubernetes Objects Using Kustomize](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/) - [Managing kubernetes environments with kustomize](https://lundbird.medium.com/managing-kubernetes-environments-with-kustomize-ab3ab819d079) - [Kustomize Tutorial](https://www.densify.com/kubernetes-tools/kustomize/) ⭐ - [Modify your Kubernetes manifests with Kustomize](https://opensource.com/article/21/6/kustomize-kubernetes) ⭐ - [Kustomize Built-Ins](https://kubectl.docs.kubernetes.io/references/kustomize/builtins/) - [Commands](https://kubectl.docs.kubernetes.io/references/kustomize/cmd/) - [Glossary](https://kubectl.docs.kubernetes.io/references/kustomize/glossary/) - [Kustomize - The right way to do templating in Kubernetes](https://blog.stack-labs.com/code/kustomize-101/) ⭐ - [Declarative Management of Kubernetes Objects Using Kustomize](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/) ⭐⭐ - [Kustomize Feature List](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/#kustomize-feature-list) - [The Kustomization File References](https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/) ⭐⭐ - [When and How to Use Helm and Kustomize Together](https://trstringer.com/helm-kustomize/) - [Kustomize Tutorial: Comprehensive Guide For Beginners](https://devopscube.com/kustomize-tutorial/) ⭐⭐ - [Kuztomize Secret & Configmap Generators [Practical Examples]](https://devopscube.com/kuztomize-configmap-generators/) ⭐⭐ - [Combining Helm and Kustomize: When, Why, and How?](https://ahmedelfakharany.com/combining-helm-and-kustomize-when-why-and-how-96a3483310db) - [Helm vs Kustomize: why, when, and how](https://ahmedelfakharany.com/helm-vs-kustomize-why-when-and-how-5d5ba0f80234) ## 📺 Videos - [Kustomize: Deploy Your App with Template Free YAML - Ryan Cox, Lyft](https://www.youtube.com/watch?v=ahMIBxufNR0) - [Organizing the YAML mess with Kustomize - Florian Assmus](https://www.youtube.com/watch?v=1fCAwFGX38U) - [Kustomize: Kubernetes Configuration Customization - K8s, Kustomize & Ship SF Meetup](https://www.youtube.com/watch?v=WWJDbHo-OeY) - [Getting started with Kustomize tool for Kubernetes](https://www.youtube.com/watch?v=ASK6p2r-Yrk) - [Simplify Kubernetes YAML with Kustomize](https://www.youtube.com/watch?v=5gsHYdiD6v8) - [Helm vs Kustomize - The Fight Between Templating and Patching in Kubernetes](https://www.youtube.com/watch?v=ZMFYSm0ldQ0) ## Samples - [chayxana/Restaurant-App/tree/develop/k8s-kustomize](https://github.com/chayxana/Restaurant-App/tree/develop/k8s-kustomize) ⭐ - [kubernetes-sigs/kustomize/examples](https://github.com/kubernetes-sigs/kustomize/tree/master/examples) ⭐⭐ - [marcel-dempers/docker-development-youtube-series/kubernetes/kustomize](https://github.com/marcel-dempers/docker-development-youtube-series/tree/master/kubernetes/kustomize) - [kubernetes-sigs/kustomize/examples](https://github.com/kubernetes-sigs/kustomize/tree/master/examples) - [wuestkamp/kubernetes-kustomize-example](https://github.com/wuestkamp/kubernetes-kustomize-example) - [lundbird/KustomizeTutorial](https://github.com/lundbird/KustomizeTutorial) ================================================ FILE: docs/devops/kubernetes/ingress-controller/ingress-controller.md ================================================ # Ingress Controller ### 📕Articles - [Combining Ingress Controllers and External Load Balancers with Kubernetes](https://traefik.io/blog/combining-ingress-controllers-and-external-load-balancers-with-kubernetes/) - [Using a Network Load Balancer with the NGINX Ingress Controller on Amazon EKS](https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/) - [What is a Kubernetes Ingress Controller, and How is it Different from a Kubernetes Ingress?](https://traefik.io/glossary/kubernetes-ingress-and-ingress-controller-101/) ⭐ - [Using NGINX or NGINX Plus as the Ingress Controller for Amazon Elastic Kubernetes Services](https://docs.nginx.com/nginx/deployment-guides/amazon-web-services/ingress-controller-elastic-kubernetes-services/) - [Exposing Kubernetes Applications, Part 1: Service and Ingress Resources](https://aws.amazon.com/blogs/containers/exposing-kubernetes-applications-part-1-service-and-ingress-resources/) ⭐ - [Exposing Kubernetes Applications, Part 2: AWS Load Balancer Controller](https://aws.amazon.com/blogs/containers/exposing-kubernetes-applications-part-2-aws-load-balancer-controller/) - [Exposing Kubernetes Applications, Part 3: Ingress-Nginx Controller](https://aws.amazon.com/blogs/containers/exposing-kubernetes-applications-part-3-nginx-ingress-controller/) - [Deploying an Ingress and Reverse Proxy](https://hansgaron.com/articles/microservices/adding_an_ingress/) ## 📺 Videos - [Kubernetes Ingress Explained for Beginners](https://www.youtube.com/watch?v=izWCkcJAzBw) - [Kubernetes Ingress Tutorial for Beginners | simply explained | Kubernetes Tutorial 22](https://www.youtube.com/watch?v=80Ew_fsV4rM) - [Kubernetes Ingress Explained Completely For Beginners - Updated](https://www.youtube.com/watch?v=GhZi4DxaxxE) - [Kubernetes Ingress Explained (2 Types)](https://www.youtube.com/watch?v=1BksUVJ1f5M) ================================================ FILE: docs/devops/kubernetes/ingress-controller/nginx-ingress.md ================================================ # Nginx Ingress ## 📕 Articles - [Using a Network Load Balancer with the NGINX Ingress Controller on Amazon EKS](https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/) - [Host ASP.NET Core on Linux with Nginx](https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx) - [Using NGINX or NGINX Plus as the Ingress Controller for Amazon Elastic Kubernetes Services](https://docs.nginx.com/nginx/deployment-guides/amazon-web-services/ingress-controller-elastic-kubernetes-services/) - [Exposing Kubernetes Applications, Part 3: Ingress-Nginx Controller](https://aws.amazon.com/blogs/containers/exposing-kubernetes-applications-part-3-nginx-ingress-controller/) ## Videos - [Kubernetes Ingress Explained (2 Types)](https://www.youtube.com/watch?v=1BksUVJ1f5M) ## 🚀 Samples - [giansalex/aspnetcore-load-balancing](https://github.com/giansalex/aspnetcore-load-balancing) - ASP.NET Core 5.0 - Load Balancing with Nginx | Traefik | Caddy - Alpine - Docker ================================================ FILE: docs/devops/kubernetes/ingress-controller/traefik-ingress.md ================================================ # Traefik Ingress ## 📕 Articles - [Integrating Consul Connect Service Mesh with Traefik 2.5](https://traefik.io/blog/integrating-consul-connect-service-mesh-with-traefik-2-5/) - [Migration Guide: From v1 to v2](https://doc.traefik.io/traefik/migration/v1-to-v2/) - [Traefik Proxy Now Fully Integrates with Hashicorp Nomad](https://traefik.io/blog/traefik-proxy-fully-integrates-with-hashicorp-nomad/) - [Infrastructure with Traefik and Cloudflare](https://marcmogdanz.de/posts/infrastructure-with-traefik-and-cloudflare/) - [Install And Configure Traefik Proxy with Helm](https://traefik.io/blog/install-and-configure-traefik-with-helm/) - [Use the Helm Chart](https://doc.traefik.io/traefik/getting-started/install-traefik/#use-the-helm-chart) ⭐ - [Traefik & Kubernetes](https://doc.traefik.io/traefik/providers/kubernetes-ingress/) ⭐ - [Quick Start Traefik](https://doc.traefik.io/traefik/getting-started/quick-start-with-kubernetes/) ⭐ - [Let's Encrypt](https://doc.traefik.io/traefik/https/acme/) - [How to deploy Traefik Ingress Controller on Kubernetes using Helm](https://platform9.com/learn/v1.0/tutorials/traefik-ingress) ⭐ - [Combining Ingress Controllers and External Load Balancers with Kubernetes](https://traefik.io/blog/combining-ingress-controllers-and-external-load-balancers-with-kubernetes/) - [Understanding Kubernetes services & ingress networking](https://www.cortex.io/post/understanding-kubernetes-services-ingress-networking) ⭐ - [What is a Kubernetes Ingress Controller, and How is it Different from a Kubernetes Ingress?](https://traefik.io/glossary/kubernetes-ingress-and-ingress-controller-101/) ⭐ - [Secure Web Applications with Traefik Proxy, cert-manager, and Let’s Encrypt](https://traefik.io/blog/secure-web-applications-with-traefik-proxy-cert-manager-and-lets-encrypt/) ⭐ - [Wildcard Certificates with Traefik + cert-manager + Let's Encrypt in Kubernetes Tutorial](https://docs.technotim.live/posts/kube-traefik-cert-manager-le/) - [Configuring Traefik 2 Ingress for Kubernetes](https://docs.technotim.live/posts/k3s-traefik-rancher/) - [HTTPS on Kubernetes Using Traefik Proxy](https://traefik.io/blog/https-on-kubernetes-using-traefik-proxy/) - [Let's Encrypt](https://doc.traefik.io/traefik/https/acme/) - [IngressRouteTCP](https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/#kind-ingressroutetcp) - [Postgresql Ingress using Traefik Kubernetes K3s](https://wirywolf.com/2022/07/postgresql-ingress-using-traefik-kubernetes-k3s.html) - [Integrating Consul Connect Service Mesh with Traefik 2.5](https://traefik.io/blog/integrating-consul-connect-service-mesh-with-traefik-2-5/) - [EntryPoints](https://doc.traefik.io/traefik/routing/entrypoints/) ## 📺 Videos - [Traefik v2 in Kubernetes - Just me and Opensource](https://www.youtube.com/playlist?list=PL34sAs7_26wNldKrBBY_uagluNKC9cCak) - [Traefik v2 | Part 1 | How to deploy in Kubernetes](https://www.youtube.com/watch?v=dEAtD9PVr_Q) - [Traefik v2 | Part 2 | Creating IngressRoutes](https://www.youtube.com/watch?v=6_wRqKmx7QU&t=0s) - [Traefik v2 | Part 3 | Dealing with TLS certificates](https://www.youtube.com/watch?v=7CWc7BLITSQ) - [Traefik v2 | Part 4 | Exploring Middlewares](https://www.youtube.com/watch?v=O1YeaEW3Tms) - [Traefik v2 | Part 5 | Exposing Dashboard](https://www.youtube.com/watch?v=klFwSx5m87I) - [Traefik v2 | Part 6 | Weighted Round Robin](https://www.youtube.com/watch?v=PVf2nxQXp-E) - [Set up Traefik Ingress on kubernetes Bare Metal Cluster](https://www.youtube.com/watch?v=A_PjjCM1eLA) - [Traefik (Ingress) Kubernetes Setup](https://www.youtube.com/watch?v=KRl5wpbi60Y) - [Rancher K3S Ingress Demo with Traefik](https://www.youtube.com/watch?v=12taKl5iCpA) - [Wildcard Certificates with Traefik + cert-manager + Let's Encrypt in Kubernetes Tutorial](https://www.youtube.com/watch?v=G4CmbYL9UPg) - [Self-Hosting Your Homelab Services with SSL -- Let's Encrypt, MetalLB, Traefik, Rancher, Kubernetes](https://www.youtube.com/watch?v=pAM2GBCDGTo) - [Wildcard Certificates with Traefik + cert-manager + Let's Encrypt in Kubernetes Tutorial](https://www.youtube.com/watch?v=G4CmbYL9UPg) - [Workshop: Getting Started with Traefik](https://www.youtube.com/watch?v=CL5Cxxz-yHo) ⭐ ## Libraries - [traefik/traefik-helm-chart](https://github.com/traefik/traefik-helm-chart) - Traefik v2 helm chart ## Courses - [Master Traefik Proxy With K3s](https://academy.traefik.io/courses/master-traefik-proxy-with-k3s) - [Advanced Load Balancing](https://academy.traefik.io/courses/advanced-load-balancing-w-traefik-proxy) - [GitOps For Reliable Kubernetes](https://academy.traefik.io/courses/gitops-for-reliable-kubernetes) ## 🚀 Samples - [giansalex/aspnetcore-load-balancing](https://github.com/giansalex/aspnetcore-load-balancing) - ASP.NET Core 5.0 - Load Balancing with Nginx | Traefik | Caddy - Alpine - Docker ================================================ FILE: docs/devops/kubernetes/kubernetes.md ================================================ # Kubernetes ## 📘 Resources - [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) - Production-Grade Container Scheduling and Management - [techiescamp/kubernetes-learning-path](https://github.com/techiescamp/kubernetes-learning-path) - roadmap to learn Kubernetes from scratch (Beginner to Advanced level) - [ramitsurana/awesome-kubernetes](https://github.com/ramitsurana/awesome-kubernetes) - A curated list for awesome kubernetes sources - [tomhuang12/awesome-k8s-resources](https://github.com/tomhuang12/awesome-k8s-resources) - A curated list of awesome Kubernetes tools and resources. - [omerbsezer/Fast-Kubernetes](https://github.com/omerbsezer/Fast-Kubernetes) - This repo covers Kubernetes with LABs: Kubectl, Pod, Deployment, Service, PV, PVC, Rollout, Multicontainer, Daemonset, Taint-Toleration, Job, Ingress, Kubeadm, Helm, etc. - [30 Best Kubernetes Tutorials & Resources (Beginner to Advanced)](https://scriptcrunch.com/kubernetes-tutorial-guides/) - [kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/) - [kubectl for Docker Users](https://kubernetes.io/docs/reference/kubectl/docker-cli-to-kubectl/) - [kubectl-cheatsheet](https://www.bluematador.com/learn/kubectl-cheatsheet) - [fhsinchy/kubernetes-handbook-projects](https://github.com/fhsinchy/kubernetes-handbook-projects) - Project codes used in "The Kubernetes Handbook - [kelseyhightower/kubernetes-the-hard-way](https://github.com/kelseyhightower/kubernetes-the-hard-way) - Bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts. - [Pradumnasaraf/DevOps](https://github.com/Pradumnasaraf/DevOps) - This repo contains all my learning related to DevOps ## 📕 Articles - [Kubernetes By Example](https://kubernetesbyexample.com/) - [Series: Deploying ASP.NET Core applications to Kubernetes](https://andrewlock.net/series/deploying-asp-net-core-applications-to-kubernetes/) - [Kubernetes Tutorial for Beginners – Basic Concepts & Examples](https://spacelift.io/blog/kubernetes-tutorial) - [Kubernetes & Traefik 101— When Simplicity Matters](https://medium.com/@geraldcroes/kubernetes-traefik-101-when-simplicity-matters-957eeede2cf8) - [Kubernetes on bare-metal in 10 minutes](https://blog.alexellis.io/kubernetes-in-10-minutes/) - [A Guide to the Kubernetes Networking Model](https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/) - [Building Stateful Services with Kubernetes](https://sookocheff.com/post/kubernetes/building-stateful-services/) - [Kubernetes: Host Multi-Container ASP.NET Core app to Multiple Pods](https://www.yogihosting.com/aspnet-core-kubernetes-multi-pods/) - [Managing ASP.NET Core app hosted on Kubernetes](https://www.yogihosting.com/aspnet-core-kubernetes-manage/) - [Deploy ASP.NET Core App on Kubernetes](https://www.yogihosting.com/deploy-aspnet-core-app-kubernetes/) - [How to use Kubernetes Ingress on an ASP.NET Core app](https://www.yogihosting.com/kubernetes-ingress-aspnet-core/) - [Kubernetes: Host Multi-Container ASP.NET Core app to Single Pod](https://www.yogihosting.com/aspnet-core-kubernetes-multi-container-single-pod/) - [How to Build an ASP.NET Core C# Kubernetes Microservice Architecture with Angular on Local Docker Desktop using Ingress](https://dev.to/christianzink/how-to-build-an-asp-net-core-kubernetes-microservices-architecture-with-angular-on-local-docker-desktop-using-ingress-395n) - [Deploying ASP.NET Core applications to Kubernetes - Part 1](https://andrewlock.net/deploying-asp-net-core-applications-to-kubernetes-part-1-an-introduction-to-kubernetes/) - [Deploying ASP.NET Core applications to Kubernetes - Part 2](https://andrewlock.net/deploying-asp-net-core-applications-to-kubernetes-part-2-configuring-resources-with-yaml-manifests/) - [How to Add MySql & MongoDB to a Kubernetes .Net Core Microservice Architecture](https://dev.to/christianzink/databases-in-a-kubernetes-angular-net-core-microservice-architecture-22jc) - [Building and publishing .NET Core Micro-services to Kubernetes using Azure DevOps](https://fizzylogic.nl/2019/11/15/building-and-publishing-net-core-microservices-to-kubernetes-using-azure-devops) - [Managing Applications in Kubernetes with the Carvel Kapp Controller](https://thecloudblog.net/post/managing-applications-in-kubernetes-with-the-carvel-kapp-controller/) - [Kubectl List and Switch Context](https://linuxhint.com/kubectl-list-switch-context/) - [Kubectl Config Set-Context | Tutorial and Best Practices](https://www.containiq.com/post/kubectl-config-set-context-tutorial-and-best-practices) - [A guide to swiftly managing your Kubernetes resources using K9s](https://earthly.dev/blog/managing-k8s-with-k9s/) - [Writing .NET Application Services for Kubernetes](https://mikehadlow.com/posts/2022-06-24-writing-dotnet-services-for-kubernetes/) - [Fluentd vs. Fluent Bit: Side by Side Comparison](https://logz.io/blog/fluentd-vs-fluent-bit/) - [Modern Development Environments for Cloud Native Applications Using Gitpod and Okteto](https://www.okteto.com/blog/modern-development-environments-for-cloud-native-applications-using-gitpod-and-okteto/) - [Tools for working with Kubernetes](https://chris-ayers.com/2022/11/17/tools-for-working-with-kubernetes/) - [Using Canary Deployments in Kubernetes](https://earthly.dev/blog/canary-dep-in-k8s/) - [KIND and Load Balancing with MetalLB on Mac](https://www.thehumblelab.com/kind-and-metallb-on-mac/) - [Local Kubernetes Development with Tilt](https://sookocheff.com/post/kubernetes/local-kubernetes-development-with-tilt/) - [Checking Kubernetes services status](https://www.ibm.com/docs/en/mvi/1.1.2?topic=environment-checking-kubernetes-services-status) - [How to retry image pull in a kubernetes Pods?](https://stackoverflow.com/questions/40259178/how-to-retry-image-pull-in-a-kubernetes-pods) - [Deploy and Access the Kubernetes Dashboard](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/) - [Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what?](https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0) ⭐ - [How to Make the Most of Kubernetes Environment Variables](https://release.com/blog/kubernetes-environment-variables) - [Kubernetes equivalent of env-file in Docker](https://stackoverflow.com/questions/33478555/kubernetes-equivalent-of-env-file-in-docker) - [Managing Secrets using Configuration File](https://kubernetes.io/docs/tasks/configmap-secret/managing-secret-using-config-file/) - [Define Dependent Environment Variables](https://kubernetes.io/docs/tasks/inject-data-application/define-interdependent-environment-variables/) - [Define Environment Variables for a Container](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) - [Understanding Kubernetes services & ingress networking](https://www.cortex.io/post/understanding-kubernetes-services-ingress-networking) ⭐ - [Combining Ingress Controllers and External Load Balancers with Kubernetes](https://traefik.io/blog/combining-ingress-controllers-and-external-load-balancers-with-kubernetes/) - [Configure SSL certificate with cert-manager on Kubernetes](https://blog.knoldus.com/configure-ssl-certificate-with-cert-manager-on-kubernetes/) - [Installing Cert manager with Helm](https://cert-manager.io/docs/installation/helm/) - [SelfSigned Cert with Cert Manager](https://cert-manager.io/docs/configuration/selfsigned/) - [Using a Network Load Balancer with the NGINX Ingress Controller on Amazon EKS](https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/) ⭐ - [What is a Kubernetes Ingress Controller, and How is it Different from a Kubernetes Ingress?](https://traefik.io/glossary/kubernetes-ingress-and-ingress-controller-101/) ⭐ - [Using NGINX or NGINX Plus as the Ingress Controller for Amazon Elastic Kubernetes Services](https://docs.nginx.com/nginx/deployment-guides/amazon-web-services/ingress-controller-elastic-kubernetes-services/) - [ConfigMaps - Docs](https://kubernetes.io/docs/concepts/configuration/configmap/) - [Configure a Pod to Use a ConfigMap - Docs](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/) ⭐⭐ - [Secrets - Docs](https://kubernetes.io/docs/concepts/configuration/secret/) - [Distribute Credentials Securely Using Secrets - Docs](kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/) ⭐⭐ - [Hot-Reload .NET Configuration in Kubernetes with ConfigMaps](https://www.thorsten-hans.com/hot-reload-net-configuration-in-kubernetes-with-configmaps/) ⭐ - [Kubernetes–Override an appsettings.json file in an ASP.NET Core app through ConfigMaps](https://bartwullems.blogspot.com/2021/03/kubernetesoverride-appsettingsjson-file.html) - [Kubernetes - Reload your ASP.NET Core configuration when a configmap changes–DOTNET_USE_POLLING_FILE_WATCHER](https://bartwullems.blogspot.com/2022/12/kubernetes-reload-your-aspnet-core.html) - [Managing Resources](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/) ⭐ - [How to use environment variables in a Kubernetes manifest](https://blog.8bitbuddhism.com/2022/11/12/how-to-use-environment-variables-in-a-kubernetes-manifest/) ⭐ - [How to quickly replace environment variables in a file](https://skofgar.ch/dev/2020/08/how-to-quickly-replace-environment-variables-in-a-file/) ⭐ - [Using envsubst to Merge Environment Variables into Config Files](https://nickjanetakis.com/blog/using-envsubst-to-merge-environment-variables-into-config-files) - [Service](https://kubernetes.io/docs/concepts/services-networking/service/) ⭐ - [Pods](https://kubernetes.io/docs/concepts/workloads/pods/) - [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) - [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) - [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/) - [Labels and Selectors](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) ⭐ - [Field Selectors](https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/) ⭐ - [Recommended Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/) ⭐ - [Well-Known Labels, Annotations and Taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) - [Using labels effectively](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#using-labels-effectively) - [Why K8s deployments need `matchLabels` keyword](https://rpadovani.com/kubernetes-deployments) - [The Guide to Kubernetes Labels](https://blog.kubecost.com/blog/kubernetes-labels/) ⭐ - [Kubernetes Error Codes: Field Is Immutable](www.datree.io/resources/kubernetes-error-codes-field-is-immutable) - [Use Port Forwarding to Access Applications in a Cluster](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/) - [Configure Liveness, Readiness and Startup Probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) ⭐ - [Kubernetes–Override an appsettings.json file in an ASP.NET Core app through ConfigMaps](https://bartwullems.blogspot.com/2021/03/kubernetesoverride-appsettingsjson-file.html) - [Kubeconfig File Explained With Practical Examples](https://devopscube.com/kubernetes-kubeconfig-file/) - [The Ultimate Kubectl Command Line Cheat Sheet](https://komodor.com/learn/the-ultimate-kubectl-cheat-sheet/) ⭐ - [How to Use Kubectl Config Set-Context](https://kodekloud.com/blog/kubectl-change-context/) ⭐ - [Configure Access to Multiple Clusters](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) ⭐ - [3 questions to answer when considering a multi-cluster Kubernetes architecture](https://www.redhat.com/architect/multi-cluster-kubernetes-architecture) ⭐ - [Architecting Kubernetes clusters — how many should you have?](https://learnk8s.io/how-many-clusters) ⭐ - [Adding health checks with Liveness, Readiness, and Startup probes](https://andrewlock.net/deploying-asp-net-core-applications-to-kubernetes-part-6-adding-health-checks-with-liveness-readiness-and-startup-probes/) ## 📺 Videos - [Kubernetes Tutorial for Beginners [FULL COURSE in 4 Hours]](https://www.youtube.com/watch?v=X48VuDVv0do) - [Complete Kubernetes Course - From BEGINNER to PRO](https://www.youtube.com/watch?v=2T86xAtR6Fo) - [Kubernetes Daemonsets explained | Tutorial | Kubernetes Guide](https://www.youtube.com/watch?v=RGSeeN-o-kQ) - [Kubernetes Essentials Playlist - IBM Cloud](https://www.youtube.com/playlist?list=PLOspHqNVtKABAVX4azqPIu6UfsPzSu2YN) - [Kubernetes 101 Playlist - Jeff Geerling](https://www.youtube.com/playlist?list=PL2_OBreMn7FoYmfx27iSwocotjiikS5BD) - [100DaysOfKubernetes Playlist- Anais Urlichs](https://www.youtube.com/playlist?list=PLWnens-FYbIpUpmiiNYfkqTZQUYppGMFV) - [gRPC Load Balancing on Kubernetes - Jan Tattermusch, Google (Intermediate Skill Level)](https://www.youtube.com/watch?v=F2znfxn_5Hg) - [Detect Kubernetes misconfigurations before its too late | Introduction to Datree](https://www.youtube.com/watch?v=aqiOyXPPadk) - [Kubernetes Liveness & Readiness Probes](https://www.youtube.com/watch?v=3TJRkKWuVoM) - [A Better Developer Experience With Gitpod & Okteto](https://www.youtube.com/watch?v=dgtuEgmsLoQ) - [the ULTIMATE kubernetes management tools comparison!](https://www.youtube.com/watch?v=R0HlJsugOAE) - [You MUST use these 6 Kubernetes Tools!!! (kubectx, kubens, kube-ps1, k9s, popeye, stern)](https://www.youtube.com/watch?v=xw3j4aNbHgQ) - [10 Must-Have Kubernetes Tools](https://www.youtube.com/watch?v=CB79eTFbR0w) - [Kubernetes Services explained | ClusterIP vs NodePort vs LoadBalancer vs Headless Service](https://www.youtube.com/watch?v=T4Z7visMM4E) - [Self-Hosting Your Homelab Services with SSL -- Let's Encrypt, MetalLB, Traefik, Rancher, Kubernetes](https://www.youtube.com/watch?v=pAM2GBCDGTo) - [How to deploy & use MetalLB in bare metal Kubernetes](https://www.youtube.com/watch?v=2SmYjj-GFnE) - [Configuration management in Kubernetes for beginners](https://www.youtube.com/watch?v=o-gXx7r7Rz4) - [Credentials and Configs in Kubernetes Secrets and ConfigMaps](https://www.youtube.com/watch?v=tWc3wfC8sOc) - [Level-up Your DevOps with GitHub Actions and Kubernetes](https://www.youtube.com/watch?v=TMbXwNtuAJo) - [Kubernetes + OpenAI = K8sGPT, giving you AI superpowers!](https://www.youtube.com/watch?v=7WA8XVrod2Y) - [DNS for Services and Pods](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/) ## 📦 Libraries - [kubernetes/autoscaler](https://github.com/kubernetes/autoscaler) - Autoscaling components for Kubernetes - [kubernetes-sigs/kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) - SDK for building Kubernetes APIs using CRDs - [buehler/dotnet-operator-sdk](https://github.com/buehler/dotnet-operator-sdk) - KubeOps is a kubernetes operator sdk in dotnet. Strongly inspired by kubebuilder. - [derailed/k9s](https://github.com/derailed/k9s) - Kubernetes CLI To Manage Your Clusters In Style! - [lensapp/lens](https://github.com/lensapp/lens) - Lens - The Kubernetes IDE - [kedacore/keda](https://github.com/kedacore/keda) - KEDA is a Kubernetes-based Event Driven Autoscaling component. It provides event driven scale for any container running in Kubernetes - [kubeshop/testkube](https://github.com/kubeshop/testkube) - Kubernetes-native framework for test definition and execution - [vmware-tanzu/carvel](https://github.com/vmware-tanzu/carvel) - Carvel provides a set of reliable, single-purpose, composable tools that aid in your application building, configuration, and deployment to Kubernetes. This repo contains information regarding the Carvel open-source community. - [FairwindsOps/Polaris](https://github.com/FairwindsOps/Polaris) - Validation of best practices in your Kubernetes clusters - [FairwindsOps/pluto](https://github.com/FairwindsOps/pluto) - A cli tool to help discover deprecated apiVersions in Kubernetes - [ahmetb/kubectl-aliases](https://github.com/ahmetb/kubectl-aliases) - Programmatically generated handy kubectl aliases. - [GoogleContainerTools/skaffold](https://github.com/GoogleContainerTools/skaffold) - Easy and Repeatable Kubernetes Development - [hidetatz/kubecolor](https://github.com/hidetatz/kubecolor) - colorizes kubectl output - [telepresenceio/telepresence](https://github.com/telepresenceio/telepresence) - Local development against a remote Kubernetes or OpenShift cluster - [gefyrahq/gefyra](https://github.com/gefyrahq/gefyra) - Blazingly-fast 🚀, rock-solid, local application development ➡️ with Kubernetes. - [hasura/gitkube](https://github.com/hasura/gitkube) - Build and deploy docker images to Kubernetes using git push - [Azure/draft](https://github.com/Azure/draft) - A day 0 tool for getting your app on k8s fast - [GoogleContainerTools/skaffold](https://github.com/GoogleContainerTools/skaffold) - Easy and Repeatable Kubernetes Development - [garden-io/garden](https://github.com/garden-io/garden) - Automation for Kubernetes development and testing. - [tilt-dev/tilt](https://github.com/tilt-dev/tilt) - Define your dev environment as code. For microservice apps on Kubernetes. - [datreeio/datree](https://github.com/datreeio/datree) - Prevent Kubernetes misconfigurations from reaching production - [txn2/kubefwd](https://github.com/txn2/kubefwd) - Bulk port forwarding Kubernetes services for local development. - [kubernetes-sigs/kustomize](https://github.com/kubernetes-sigs/kustomize) - Customization of kubernetes YAML configurations - [dassump/dotnet-appsettings-env](https://github.com/dassump/dotnet-appsettings-env) - Convert .NET appsettings.json file to Kubernetes, Docker and Docker-Compose environment variables. - [virtual-kubelet/virtual-kubelet](https://github.com/virtual-kubelet/virtual-kubelet) - Virtual Kubelet is an open source Kubernetes kubelet implementation. - [okteto/okteto](https://github.com/okteto/okteto/) - Develop your applications directly in your Kubernetes Cluster - [fluxcd/flagger](https://github.com/fluxcd/flagger) - Progressive delivery Kubernetes operator (Canary, A/B Testing and Blue/Green deployments) - [ahmetb/kubectx](https://github.com/ahmetb/kubectx) - Faster way to switch between clusters and namespaces in kubectl - [kubeshark/kubeshark](https://github.com/kubeshark/kubeshark) - The API traffic viewer for Kubernetes providing deep visibility into all API traffic and payloads going in, out and across containers and pods inside a Kubernetes cluster. Think TCPDump and Wireshark re-invented for Kubernetes - [komodorio/helm-dashboard](https://github.com/komodorio/helm-dashboard) - The missing UI for Helm - visualize your releases - [kubernetes/kompose](https://github.com/kubernetes/kompose) - Convert Compose to Kubernetes - [bonnefoa/kubectl-fzf](https://github.com/bonnefoa/kubectl-fzf) - A fast kubectl autocompletion with fzf - [sozercan/kubectl-ai](https://github.com/sozercan/kubectl-ai) - Kubectl plugin for OpenAI GPT - [kubernetes-client/csharp](https://github.com/kubernetes-client/csharp) - Officially supported dotnet Kubernetes Client library - [k8sgpt-ai/k8sgpt](https://github.com/k8sgpt-ai/k8sgpt) - Giving Kubernetes SRE superpowers to everyone - [open-policy-agent/conftest](https://github.com/open-policy-agent/conftest) - Write tests against structured configuration data using the Open Policy Agent Rego query language - [yannh/kubeconform](https://github.com/yannh/kubeconform) - A FAST Kubernetes manifests validator, with support for Custom Resources! - [komodorio/validkube](https://github.com/komodorio/validkube) - ValidKube combines the best open-source tools to help ensure Kubernetes YAML best practices, hygiene & security. - [stakater/Reloader](https://github.com/stakater/Reloader) - A Kubernetes controller to watch changes in ConfigMap and Secrets and do rolling upgrades on Pods with their associated Deployment, StatefulSet, DaemonSet and DeploymentConfig - [metalbear-co/mirrord](https://github.com/metalbear-co/mirrord) - Connect your local process and your cloud environment, and run local code in cloud conditions - [gefyrahq/gefyra](https://github.com/gefyrahq/gefyra) - Blazingly-fast, rock-solid, local application development with Kubernetes. - [cdk8s-team/cdk8s](https://github.com/cdk8s-team/cdk8s) - Define Kubernetes native apps and abstractions using object-oriented programming - [kubecolor/kubecolor](https://github.com/kubecolor/kubecolor) - Colorize your kubectl output ## 🚀 Samples - [arashkaffamanesh/practical-kubernetes-problems](https://github.com/arashkaffamanesh/practical-kubernetes-problems) - For Kubernauts' Practical Kubernetes Trainings - [ContainerSolutions/kubernetes-examples](https://github.com/ContainerSolutions/kubernetes-examples) - Minimal self-contained examples of standard Kubernetes features and patterns in YAML - [ContainerSolutions/k8s-deployment-strategies](https://github.com/ContainerSolutions/k8s-deployment-strategies) - Kubernetes deployment strategies explained - [vany0114/microservices-dotnetcore-docker-sf-k8s](https://github.com/vany0114/microservices-dotnetcore-docker-sf-k8s) - Shows an approach to work with a microservices based architecture using .Net Core, Docker, and Azure Service Fabric/Kubernetes, applying Domain Driven Design (DDD) and Comand and Query Responsibility Segregation (CQRS) and other patterns. - [twzhangyang/RestAirline](https://github.com/twzhangyang/RestAirline) - DDD+CQRS+EventSourcing+Hypermedia API+ASP.NET Core 3.1+Masstransit+terraform+docker+k8s - [microservices-demo/microservices-demo](https://github.com/microservices-demo/microservices-demo/tree/master/deploy/kubernetes) - Deployment scripts & config for Sock Shop - [thangchung/shopping-cart-k8s](https://github.com/thangchung/shopping-cart-k8s) - Service Mesh patterns for Microservices - [dotnet-architecture/eShopOnContainers](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/deploy/k8s) - Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 6, Docker Containers and Azure Kubernetes Services. Supports Visual Studio, VS for Mac and CLI based environments with Docker CLI, dotnet CLI, VS Code or any other code editor. - [baotoq/micro-commerce](https://github.com/baotoq/micro-commerce) - React, Nextjs, ASP.NET Core 5.0, IdentityServer, Dapr, Azure pipeline, K8S, SonarQube - [vietnam-devs/coolstore-microservices/deploys](https://github.com/vietnam-devs/coolstore-microservices/tree/main/deploys) - [jtattermusch/grpc-loadbalancing-kubernetes-examples](https://github.com/jtattermusch/grpc-loadbalancing-kubernetes-examples) - gRPC Load Balancing on Kubernetes examples - [mikehadlow/NetOnKubernetes](https://github.com/mikehadlow/NetOnKubernetes) - Simple .NET http service example for hosting on Kubernetes. - [jxlwqq/kubernetes-examples](https://github.com/jxlwqq/kubernetes-examples) - Kubernetes samples - [stefanprodan/podinfo](https://github.com/stefanprodan/podinfo) - Go microservice template for Kubernetes - [fluxcd/flux2-kustomize-helm-example](https://github.com/fluxcd/flux2-kustomize-helm-example) - A GitOps workflow example for multi-env deployments with Flux, Kustomize and Helm. - [bravecobra/k8s-dev-infrastructure](https://github.com/bravecobra/k8s-dev-infrastructure) - A local dev infrastructure on k8s, providing networking, telemetry and saas services - [HariSekhon/Kubernetes-configs](https://github.com/HariSekhon/Kubernetes-configs) ⭐ - Advanced Kubernetes YAML configs - Best Practices, Tips & Tricks, Production-Ready Checklist - experience from several production environments - [Azure-Samples/aks-store-demo](https://github.com/Azure-Samples/aks-store-demo) ⭐ - Sample microservices app for AKS demos, tutorials, and experiments - [asimmon/local-kubernetes-setup](https://github.com/asimmon/local-kubernetes-setup) - Setup a local Kubernetes cluster on any OS with TLS support and nginx as an ingress controller to deploy services on local trusted domains. ## 📚 Books - [Kubernetes Patterns: Reusable Elements for Designing Cloud-Native Applications](https://www.amazon.com/Kubernetes-Patterns-Designing-Cloud-Native-Applications/dp/1492050288) - [Kubernetes Best Practices: Blueprints for Building Successful Applications on Kubernetes](https://www.amazon.com/Kubernetes-Best-Practices-Blueprints-Applications/dp/1492056472/) ================================================ FILE: docs/devops/kubernetes/other-tools/garden.md ================================================ # Garden ## Resources - [Garden Github](https://github.com/garden-io/garden) - [Garden Docs](https://docs.garden.io) ## Articles - [How Garden Works](https://docs.garden.io/basics/how-garden-works) - [Garden.io: what is it and why should you be using it?](https://dev.to/bcostaaa01/gardenio-what-is-it-and-why-should-you-be-using-it-4m7g) ## Videos - [Getting started with Garden Part1](https://www.youtube.com/watch?v=3gMJWGV0WE8) - [See Garden.io in Action | Platform Demo](https://www.youtube.com/watch?v=M4uHHIoi6hs) - [Garden COH: Migrating from Docker Compose to Garden](https://www.youtube.com/watch?v=8NgC6jzilac) - [Garden COH: Local Kubernetes Solutions and how to use them with Garden](https://www.youtube.com/watch?v=-dOgAOsozIA) - [Garden COH: Developing with Local vs Remote Kubernetes](https://www.youtube.com/watch?v=RbrIHf1jg7U) - [Garden - Build, Deploy, And Test Cloud And Kubernetes Applications](https://www.youtube.com/watch?v=BUlrbSxpRTs) ================================================ FILE: docs/devops/kubernetes/other-tools/k3s.md ================================================ # K3S ## Resourses - [K3s GitHub](https://github.com/k3s-io/k3s) - Lightweight Kubernetes. Production ready, easy to install, half the memory, all in a binary less than 100 MB. ## 📕 Articles - [K3s with k3d and MetalLB](https://blog.kubernauts.io/k3s-with-k3d-and-metallb-on-mac-923a3255c36e) - [K3S with MetalLB on Multipass VMs](https://blog.kubernauts.io/k3s-with-metallb-on-multipass-vms-ac2b37298589) - [Running k3s with metallb on Vagrant](https://medium.com/@toja/running-k3s-with-metallb-on-vagrant-bd9603a5113b) - [Simplicity matters: Kubernetes 1.18.2 on your local machine with kubeadm and Multipass, Rancher k3s, RKE](https://blog.kubernauts.io/simplicity-matters-kubernetes-1-16-fffbf7e84944) - [Kubernetes multi-node cluster with k3s and multipass](https://levelup.gitconnected.com/kubernetes-cluster-with-k3s-and-multipass-7532361affa3) - [Bare-metal Kubernetes with K3s](https://blog.alexellis.io/bare-metal-kubernetes-with-k3s/) - [Quick-Start Guide](https://docs.k3s.io/quick-start) - [Organizing Cluster Access Using kubeconfig Files](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) - [Installation Configuration Options](https://docs.k3s.io/installation/configuration) ⭐ - [K3s Configuration with Yaml file instead of passing CLI arguments](https://docs.k3s.io/installation/configuration#configuration-file) ⭐ - [K3s Server Configuration](https://docs.k3s.io/reference/server-config) ⭐ - [K3s Agent Configuration](https://docs.k3s.io/reference/agent-config) - [Advanced Options and Configuration](https://docs.k3s.io/advanced) - [Networking - CoreDNS, Traefik Ingress controller, Klipper Load Balancer(ServiceLB) ](https://docs.k3s.io/networking) ⭐ - [Helm and K3s](https://docs.k3s.io/helm) ⭐ - [Installing Helm](https://helm.sh/docs/intro/install/) - [Cluster Access](https://docs.k3s.io/cluster-access) ⭐ - [`/etc/rancher/k3s/k3s.yaml` is world readable](https://github.com/k3s-io/k3s/issues/389) ⭐⭐ - [How to migrate from Helm v2 to Helm v3](https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/) - [Stopping K3s](https://docs.k3s.io/upgrades/killall) - [Restarting K3s](https://docs.k3s.io/upgrades/manual#restarting-k3s) - [Kubernetes Dashboard](https://docs.k3s.io/installation/kube-dashboard) - [Deploy and Access the Kubernetes Dashboard](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/) - [Install And Configure Traefik Proxy with Helm](https://traefik.io/blog/install-and-configure-traefik-with-helm/) - [Use the Helm Chart](https://doc.traefik.io/traefik/getting-started/install-traefik/#use-the-helm-chart) ⭐ - [Traefik & Kubernetes](https://doc.traefik.io/traefik/providers/kubernetes-ingress/) ⭐ - [Quick Start Traefik](https://doc.traefik.io/traefik/getting-started/quick-start-with-kubernetes/) ⭐ - [How to deploy Traefik Ingress Controller on Kubernetes using Helm](https://platform9.com/learn/v1.0/tutorials/traefik-ingress) ⭐ - [How to view status of a service on Linux using systemctl](https://www.cyberciti.biz/faq/systemd-systemctl-view-status-of-a-service-on-linux/) - [Set environment variable in Windows and WSL Linux in terminal](https://dev.to/kapilgorve/set-environment-variable-in-windows-and-wsl-linux-in-terminal-3mg4) - [How to Set Environment Variables in Linux](https://phoenixnap.com/kb/linux-set-environment-variable) - [In Ubuntu WSL, how can you store permanent environment variables?](https://stackoverflow.com/questions/65258771/in-ubuntu-wsl-how-can-you-store-permanent-environment-variables) - [Why doesn't .bashrc run automatically?](https://apple.stackexchange.com/questions/12993/why-doesnt-bashrc-run-automatically) ⭐ - [Setting up your own K3S home cluster](https://www.fullstaq.com/knowledge-hub/blogs/setting-up-your-own-k3s-home-cluster) ⭐⭐ - [WARNING: Kubernetes configuration file is group/world-readable](https://github.com/helm/helm/issues/9115) ⭐⭐ - [Configure SSL certificate with cert-manager on Kubernetes](https://blog.knoldus.com/configure-ssl-certificate-with-cert-manager-on-kubernetes/) - [Installing Cert manager with Helm](https://cert-manager.io/docs/installation/helm/) - [Metallb INSTALLATION](https://metallb.universe.tf/installation/) - [Metallb Layer 2 Configuration](https://metallb.universe.tf/configuration/#layer-2-configuration) - [Accessing network applications with WSL](https://learn.microsoft.com/en-us/windows/wsl/networking) - [How to access host ip and port?](https://github.com/microsoft/WSL/issues/1032) - [Fully Automated K3S etcd High Availability Install](https://docs.technotim.live/posts/k3s-etcd-ansible/) - [Configuring Traefik 2 Ingress for Kubernetes](https://docs.technotim.live/posts/k3s-traefik-rancher/) - [Setting up a HA Kubernetes cluster using K3S](https://gabrieltanner.org/blog/ha-kubernetes-cluster-using-k3s/) ## 📺 Videos - [Single-node Kubernetes Clusters Using K3s with Benefits of GitOps • Lasse Højgaard • GOTO 2021](https://www.youtube.com/watch?v=ePyFJ7Hd57Q) - [Using *HA* Kubernetes at home, was never so simple!](https://www.youtube.com/watch?v=UdjhFLV1yt8) - [HA K3s with etcd, kube-vip, MetalLB, and Rancher!](https://www.youtube.com/watch?v=9PLw1xalcYA) - [Build a Lightweight Private Cloud with Harvester, K3s, and Traefik // Traefik Labs](https://www.youtube.com/watch?v=Lu60U2X7SYI) - [WSL 2 Networking](https://www.youtube.com/watch?v=yCK3easuYm4) ⭐ - [The FASTEST Way to run Kubernetes at Home - k3s Ansible Automation](https://www.youtube.com/watch?v=CbkEWcUZ7zM) - [High Availability Rancher on a Kubernetes Cluster](https://www.youtube.com/watch?v=APsZJbnluXg) - [HIGH AVAILABILITY k3s (Kubernetes) in minutes!](https://www.youtube.com/watch?v=UoOcLXfa8EU) ## Courses - [Master Traefik Proxy With K3s](https://academy.traefik.io/courses/master-traefik-proxy-with-k3s) - [Introduction to Kubernetes on Edge with k3s](https://training.linuxfoundation.org/training/introduction-to-kubernetes-on-edge-with-k3s-lfs156x/) ## 📦 Libraries - [k3s-io/k3s-ansible](https://github.com/k3s-io/k3s-ansible) - Build a Kubernetes cluster using Ansible with k3s. - [alexellis/k3sup](https://github.com/alexellis/k3sup) - bootstrap K3s over SSH in < 60s - [techno-tim/k3s-ansible](https://github.com/techno-tim/k3s-ansible) - The easiest way to bootstrap a self-hosted High Availability Kubernetes cluster. A fully automated HA k3s etcd install with kube-vip, MetalLB, and more - [traefik/traefik-helm-chart](https://github.com/traefik/traefik-helm-chart) - [k3s-io/helm-controller/](https://github.com/k3s-io/helm-controller/) - [shayne/go-wsl2-host](https://github.com/shayne/go-wsl2-host) ## 🚀 Samples - [arashkaffamanesh/bonsai](https://github.com/arashkaffamanesh/bonsai) - Rancher k3s and Rancher Server on Multipass VMs on your local machine and RKE cluster deployment through Rancher server running on k3s - [arashkaffamanesh/kubeadm-multipass](https://github.com/arashkaffamanesh/kubeadm-multipass) - Multi-Node Kubernetes 1.17.x with kubeadm on local multipass cloud with Docker, Containerd or CRI-O and Rancher Server on top - [arashkaffamanesh/k3d-k3s-metallb](https://github.com/arashkaffamanesh/k3d-k3s-metallb) - k3s with k3d and MetalLB for LoadBalancing (on Mac) - [mattiaperi/k3s-multipass-cluster](https://github.com/mattiaperi/k3s-multipass-cluster) - Kubernetes multi-nodes cluster with k3s and multipass ================================================ FILE: docs/devops/kubernetes/other-tools/mirrord.md ================================================ # Mirrord ## Resources - [Mirrord GitHub](https://github.com/metalbear-co/mirrord) ## Articles - [Debugging Microservices Locally with mirrord](https://blog.stackademic.com/mastering-local-microservices-debugging-with-mirrord-0a99443c1544) - [Comparing Local Kubernetes Development Tools: Telepresence, Gefyra, and mirrord](https://kubernetes.io/blog/2023/09/12/local-k8s-development-tools/) - [mirrord as an alternative to Telepresence](https://metalbear.co/blog/mirrord-as-an-alternative-to-telepresence/) ================================================ FILE: docs/devops/kubernetes/other-tools/okteto.md ================================================ # Okteto ## Resources - [Okteto GitHub](https://github.com/okteto/okteto) ## Articles - [Local Kubernetes Development with Okteto](https://codefresh.io/blog/okteto/) ## Videos - [Okteto: Kubernetes Deployments Made Easy](https://www.youtube.com/watch?v=HmAawDYMWB4) - [Do NOT Use Docker Compose! Develop In Kubernetes (With Okteto)](https://www.youtube.com/watch?v=RTo9Pvo_yiY) - [Okteto - How To Create Instant Development Environments In Kubernetes](https://www.youtube.com/watch?v=yjgHHUT-5-s) ================================================ FILE: docs/devops/kubernetes/other-tools/skaffold.md ================================================ # Skaffold ## Articles - [Getting Started with Skaffold for Kubernetes Deployments](https://speedscale.com/blog/getting-started-with-skaffold/) - [Skaffold a new way for deploying applications to k8s clusters](https://medium.com/@michamarszaek/skaffold-a-new-way-for-deploying-applications-to-k8s-clusters-f8ed4f2539a9) - [How to Simplify Your Local Kubernetes Development With Skaffold](https://dev.to/otomato_io/local-kubernetes-development-with-skaffold-i0k) - [Getting Started With Skaffold](https://dev.to/thenjdevopsguy/getting-started-with-skaffold-5120) - [Local Java Development on Kubernetes](https://piotrminkowski.com/2020/02/14/local-java-development-on-kubernetes/) - [Development on Kubernetes with Telepresence and Skaffold](https://piotrminkowski.com/2021/12/21/development-on-kubernetes-with-telepresence-and-skaffold/) ## Videos - [How to setup local development environment with Kubernetes and Skaffold](https://www.youtube.com/watch?v=9A3paYRHvDQ) - [Getting Started with Skaffold](https://www.youtube.com/watch?v=ZUI-I5kiQRM) - [Skaffold | Kubernetes Development made easy | Tech Primers](https://www.youtube.com/watch?v=jnxj4Ma3zpg) ## Samples - [piomin/sample-istio-services](https://github.com/piomin/sample-istio-services) ================================================ FILE: docs/devops/kubernetes/other-tools/telepresence.md ================================================ # Telepresence ## Resources - [Telepresence Github](https://github.com/telepresenceio/telepresence) - [Telepresence Docs](https://www.getambassador.io/docs/telepresence) ## Articles - [Getting Started with Telepresence on Windows](https://www.getambassador.io/resources/getting-started-with-telepresence-on-windows/) - [Developing and debugging services locally using telepresence](https://kubernetes.io/docs/tasks/debug/debug-cluster/local-debugging/) - [Using Telepresence 2 for Kubernetes debugging and local development](https://codefresh.io/blog/telepresence-2-local-development/) - [An alternative to Telepresence 2: Gefyra](https://unikube.io/blog/alternative-to-telepresence-2-gefyra/) - [Comparing Local Kubernetes Development Tools: Telepresence, Gefyra, and mirrord](https://kubernetes.io/blog/2023/09/12/local-k8s-development-tools/) - [mirrord as an alternative to Telepresence](https://metalbear.co/blog/mirrord-as-an-alternative-to-telepresence/) - [Development on Kubernetes with Telepresence and Skaffold](https://piotrminkowski.com/2021/12/21/development-on-kubernetes-with-telepresence-and-skaffold/) ## Videos - [Local Kubernetes Development with Telepresence](https://www.youtube.com/watch?v=k0C2M8_8olg) - [Building Microservice Systems Without Cooking Your Laptop](https://www.youtube.com/watch?v=7bMWqlXF6C0) - [Teleporting And Intercepting Microservices With CodeZero](https://www.youtube.com/watch?v=bt5lQqRJxlE) - [How We Use Telepresence 2 at Ambassador Labs](https://www.youtube.com/watch?v=nN1yF6RCaW4) - [Intro: Telepresence: Fast Local-to-Remote Development for Kubernetes - Daniel Bryant, Datawire](https://www.youtube.com/watch?v=9eyHSjbZwR8) ## Samples - [piomin/sample-istio-services](https://github.com/piomin/sample-istio-services) ================================================ FILE: docs/devops/kubernetes/other-tools/tilt.md ================================================ # Tilt ## Resources - [Tilt GitHub](https://github.com/tilt-dev/tilt) - [Tilt Docs](https://docs.tilt.dev/) ## Articles - [Accelerate your local development environment with Tilt](https://dev.to/eminetto/accelerate-your-local-development-environment-with-tilt-46n7) - [Local Kubernetes development with Tilt.dev](https://medium.com/containers-101/local-kubernetes-development-with-tilt-dev-9b2d9d138cb3) ## Videos - [Development Environments Made Easy With Tilt Rebuilds And Live Updates](https://www.youtube.com/watch?v=fkODRlobR9I) - [Tilt for Kubernetes: Streamline Your Development Workflow](https://www.youtube.com/watch?v=JRc967vAkGM) ================================================ FILE: docs/devops/kubernetes/services.md ================================================ # Services ## 📺 Videos - [Kubernetes Services explained | ClusterIP vs NodePort vs LoadBalancer vs Headless Service](https://www.youtube.com/watch?v=T4Z7visMM4E) ================================================ FILE: docs/devops/terminal/bash.md ================================================ # Bash ================================================ FILE: docs/devops/terminal/powershell.md ================================================ # Powershell ## Resources - [PowerShell Cheat Sheet / Quick Reference](https://gist.github.com/pcgeek86/336e08d1a09e3dd1a8f0a30a9fe61c8a) ================================================ FILE: docs/distributed-locking.md ================================================ # Distributed Locking ## 📕Articles - [Distributed Locks with Redis](https://redis.io/docs/reference/patterns/distributed-locks/) - [Implementing Redlock on Redis for distributed locks](https://levelup.gitconnected.com/implementing-redlock-on-redis-for-distributed-locks-a3cfe60d4ea4) - [How to do distributed locking](https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html) - [Distributed Locks Manager (C# and Redis)](https://towardsdev.com/distributed-locks-manager-c-and-redis-fd3d86cd1250) - [The Technical Practice of Distributed Locks in a Storage System](https://www.alibabacloud.com/blog/the-technical-practice-of-distributed-locks-in-a-storage-system_597141) - [Control concurrency for shared resources in distributed systems with DLM (Distributed Lock Manager)](https://m-qafouri.medium.com/serialize-access-to-a-shared-resource-in-distributed-systems-with-dlm-distributed-lock-manager-5abf5e393e15) - [Solving Concurrency in Event-Driven Microservices](https://itnext.io/solving-concurrency-in-event-driven-microservices-79bbc13b597c) - [Distributed Locks with Redis](https://redis.io/docs/manual/patterns/distributed-locks/) - [Distributed Locking: A Practical Guide](https://www.architecture-weekly.com/p/distributed-locking-a-practical-guide) ## 📦 Libraries - [kidfashion/redlock-cs](https://github.com/kidfashion/redlock-cs) - Distributed lock with Redis and C# (based on http://redis.io/topics/distlock) - [samcook/RedLock.net](https://github.com/samcook/RedLock.net) - An implementation of the Redlock algorithm in C# - [madelson/DistributedLock](https://github.com/madelson/DistributedLock) - A .NET library for distributed synchronization ================================================ FILE: docs/distributed-transactions.md ================================================ # Distributed Transactions & Saga ## 📘 Resources - [Sairyss/distributed-systems-topics](https://github.com/Sairyss/distributed-systems-topics) - Topics and resources related to distributed systems, system design, microservices, scalability and performance, etc ## 📕 Articles - [Saga distributed transactions pattern](https://learn.microsoft.com/en-us/azure/architecture/patterns/saga) - [Life Beyond Distributed Transactions: An Apostate's Implementation - A Primer](https://jimmybogard.com/life-beyond-transactions-implementation-primer/) - [It’s Time to Move on from Two Phase Commit](http://dbmsmusings.blogspot.com/2019/01/its-time-to-move-on-from-two-phase.html) - [Saga Pattern for Microservices Distributed Transactions](https://medium.com/design-microservices-architecture-with-patterns/saga-pattern-for-microservices-distributed-transactions-7e95d0613345) - [Microservices Distributed Transactions](https://medium.com/design-microservices-architecture-with-patterns/microservices-distributed-transactions-a71a996e5db8) - [A MICROSERVICES SAGA CHOREOGRAPHY EXAMPLE](https://akfpartners.com/growth-blog/a-microservices-saga-choreography-example) - [MICROSERVICES SAGA PATTERN](https://akfpartners.com/growth-blog/microservices-saga-pattern) - [Event-driven distributed processes by example](https://event-driven.io/en/event_driven_distributed_processes_by_example/) - [Saga and Process Manager - distributed processes in practice](https://event-driven.io/en/saga_process_manager_distributed_transactions/) - [How to deal with back-pressure on message queues with .NET Core](https://www.davidguida.net/how-to-deal-with-back-pressure-on-message-queues-with-net-core/) - [Using Channels In C# .NET – Part 3 – Understanding Back Pressure](https://dotnetcoretutorials.com/2020/11/24/using-channels-in-net-core-part-3-understanding-back-pressure/) - [Four Strategies to Handle Backpressure - Jay Phelps at ReactiveConf 2019](https://www.infoq.com/news/2019/10/reactiveconf-2019-backpressure/) - [Coordination in the distributed systems](https://rafaelldi.blog/posts/coordination-in-the-distributed-systems/) - [Choreography](https://rafaelldi.blog/posts/choreography/) - [Orchestration](https://rafaelldi.blog/posts/orchestration/) - [Saga and Process Manager - distributed processes in practice](https://event-driven.io/en/saga_process_manager_distributed_transactions/) - [Saga patterns: wrap up - Jimmy Bogard](https://lostechies.com/jimmybogard/2013/05/14/saga-patterns-wrap-up/) - [Handling Complexity: Using Sagas to Provide Transactional Support for Distributed Systems](https://medium.com/ssense-tech/handling-complexity-using-sagas-to-provide-transactional-support-for-distributed-systems-61ae909e0829) ⭐ - [Implementation of Choreography-based Saga in .NET Microservices](https://www.gokhan-gokalp.com/en/implementation-of-choreography-based-saga-in-dotnet-microservices/) - [Sagas: When a Distributed Transaction Is The Right Thing For You](https://medium.com/cloud-native-daily/sagas-when-a-distributed-transaction-is-the-right-thing-for-you-dd110253ed1a) - [How to handle multiple commands in the same transaction](https://event-driven.io/en/simple_transactional_command_orchestration/) - [Combining the To-Do List and the Passage Of Time patterns for resilient business workflows](https://event-driven.io/en/to_do_list_and_passage_of_time_patterns_combined/) - [Low Ceremony Sagas with Wolverine](https://jeremydmiller.com/2024/08/20/low-ceremony-sagas-with-wolverine/) - [Saga Orchestration for Microservices Using the Outbox Pattern](https://www.infoq.com/articles/saga-orchestration-outbox/) ⭐ - [Distributed Transactions in Microservices with Kafka Streams and Spring Boot](https://piotrminkowski.com/2022/01/24/distributed-transactions-in-microservices-with-kafka-streams-and-spring-boot/) - [Deep Dive into Saga Transactions with Kafka Streams and Spring Boot](https://piotrminkowski.com/2022/02/07/deep-dive-into-saga-transactions-with-kafka-streams-and-spring-boot/) - [Saga patterns in Akka (part 1) - event choreography](https://akka.io/blog/saga-patterns-in-akka-part-1-event-choreography) ## 📺 Videos - [Life Beyond Distributed Transactions: An Apostate's Implementation - Jimmy Bogard](https://www.youtube.com/watch?v=AUrKofVRHV4) - [Fixing Distributed Systems Fail with Jimmy Bogard](https://www.youtube.com/watch?v=p0M1rrmfrWg) - [Saga pattern within Masstransit](https://www.youtube.com/watch?v=Vsnz7np84Vc) - [Distributed Sagas: A Protocol for Coordinating Microservices - Caitie McCaffrey](https://www.youtube.com/watch?v=0UTOLRTwOX0) - [Solving distributed data problems in a microservice architecture | Microservices.io](https://www.youtube.com/watch?v=AEbJgpamZ4w) - [Backpressure in Reactive System](https://blog.frankel.ch/backpressure-reactive-systems/) - [Avoiding Distributed Transactions with the Reservation Pattern](https://www.youtube.com/watch?v=PZm0RQGcs38) - [At Least Once - Ian Cooper - NDC Oslo 2022](https://www.youtube.com/watch?v=_9ULo-F4nmE) ## Library - [event-driven-dotnet/EventDriven.Sagas](https://github.com/event-driven-dotnet/EventDriven.Sagas) - Abstractions and reference architecture for atomic operations that span multiple services. ## 🚀 Samples - [markgossa/Reference-Event-Driven-Architecture](https://github.com/markgossa/Reference-Event-Driven-Architecture) - [oskardudycz/EventSourcing.NetCore/Sample/HotelManagement](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/HotelManagement) ⭐ - [piomin/sample-spring-kafka-microservices](https://github.com/piomin/sample-spring-kafka-microservices) - Example microservices showing how to use Kafka and Kafka Streams with Spring Boot on the example of distributed transactions implementations with the SAGA pattern ================================================ FILE: docs/domain-driven-design/aggregation.md ================================================ # Aggregation ## 📕 Articles - [Processing multiple aggregates – transactional vs eventual consistency](https://www.kamilgrzybek.com/design/processing-multiple-aggregates-transactional-vs-eventual-consistency/) - [Handling concurrency – Aggregate Pattern and EF Core](http://www.kamilgrzybek.com/design/handling-concurrency-aggregate-pattern-and-ef-core/) - [Aggregate (Root) Design: Behavior & Data](https://codeopinion.com/aggregate-root-design-behavior-data/?utm_source=feedly&utm_medium=rss&utm_campaign=aggregate-root-design-behavior-data) - [Strengthening your domain: Aggregate Construction](https://lostechies.com/jimmybogard/2010/02/24/strengthening-your-domain-aggregate-construction/) - [Idempotent Aggregates](https://codeopinion.com/idempotent-aggregates/) - [Strengthening your domain: Aggregate Construction](https://lostechies.com/jimmybogard/2010/02/24/strengthening-your-domain-aggregate-construction/) - [Link to an aggregate: reference or Id?](https://enterprisecraftsmanship.com/2016/03/08/link-to-an-aggregate-reference-or-id/) - [Entities, Value Objects, Aggregates and Roots](https://lostechies.com/jimmybogard/2008/05/21/entities-value-objects-aggregates-and-roots/) - [How to Handle Updates on Aggregates - Domain-Driven Design w/ TypeScript](https://khalilstemmler.com/articles/typescript-domain-driven-design/updating-aggregates-in-domain-driven-design/) - [DDD: guidance on updating multiple properties of entities](https://stackoverflow.com/questions/33698225/ddd-guidance-on-updating-multiple-properties-of-entities) - [Don’t Create Aggregate Roots](https://udidahan.com/2009/06/29/dont-create-aggregate-roots/) - [Handling concurrency – Aggregate Pattern and EF Core](http://www.kamilgrzybek.com/design/handling-concurrency-aggregate-pattern-and-ef-core/) - [Link to an aggregate: reference or Id?](https://enterprisecraftsmanship.com/posts/link-to-an-aggregate-reference-or-id/) - [Avoid Exposing Collections Directly as Properties](https://ardalis.com/avoid-collections-as-properties/?utm_sq=grcpqjyka3) - [Aggregate Responsibility Design](https://ardalis.com/aggregate-responsibility-design/) - [Entities - ABP](https://docs.abp.io/en/abp/latest/Entities) - [Aggregate pattern in Domain-Driven Design](https://medium.com/eventuous/aggregate-pattern-in-domain-driven-design-7ad823475099) - [DDD Beyond the Basics: Mastering Aggregate Design](https://medium.com/ssense-tech/ddd-beyond-the-basics-mastering-aggregate-design-26591e218c8c) ⭐ - [Domain-Driven Design: A Walkthrough of Building an Aggregate](https://betterprogramming.pub/domain-driven-design-a-walkthrough-of-building-an-aggregate-c84113aa9975) ⭐ - [Domain Driven Design: Patterns for Aggregate Creation Mastery](https://www.dandoescode.com/blog/domain-driven-design-patterns-for-aggregate-creation-mastery) ⭐ - [DDD: Entity vs. Value Object vs. Aggregate Root](https://mbarkt3sto.hashnode.dev/ddd-entity-vs-value-object-vs-aggregate-root) ⭐ - [Classes internal to an aggregate: entities or value objects?](https://enterprisecraftsmanship.com/posts/classes-internal-to-an-aggregate-entities-or-value-objects/) ## 📺 Videos - [Aggregate (Root) Design: Separate Behavior & Data for Persistence](https://www.youtube.com/watch?v=GtWVGJp061A) ⭐ - [All our aggregates are wrong - Mauro Servienti](https://www.youtube.com/watch?v=hev65ozmYPI) ⭐ - [Adding Aggregate Example to Clean Architecture solution template](https://www.youtube.com/watch?v=kxuGtgOimGA) - [Aggregate Design: Using Invariants as a Guide](https://www.youtube.com/watch?v=64ngP-aUYPc) - [Decomposing CRUD to a Task Based UI](https://www.youtube.com/watch?v=DjZepWrAKzM) - [ALWAYS Valid Domain Model](https://www.youtube.com/watch?v=JZetlRXdYeI) - [Slim down your aggregates! - Oskar Dudycz](https://www.architecture-weekly.com/p/webinar-8-slim-down-your-aggregates) ## Samples - [oskardudycz/slim-down-your-aggregate](https://github.com/oskardudycz/slim-down-your-aggregate) - [oskardudycz/kandddinsky2024](https://github.com/oskardudycz/kandddinsky2024) ================================================ FILE: docs/domain-driven-design/anemic-domain-model.md ================================================ # Anemic Domain Model ## 📕 Articles - [AnemicDomainModel](https://www.martinfowler.com/bliki/AnemicDomainModel.html) - [What is Anemic Domain Model and why it can be harmful?](https://danielrusnok.medium.com/what-is-anemic-domain-model-and-why-it-can-be-harmful-2677b1b0a79a) - [Anemic Model x Rich Model](https://thedomaindrivendesign.io/anemic-model-x-rich-model/) - [Anemic Model](https://thedomaindrivendesign.io/anemic-model/) ## 📺 Videos - [Domain-Driven Refactoring - Jimmy Bogard - NDC Oslo 2020](https://www.youtube.com/watch?v=_dQRAsVhCqA) - [Jimmy Bogard - Crafting Wicked Domain Models](https://vimeo.com/43598193) - [Is an ANEMIC Domain Model really that BAD?](https://www.youtube.com/watch?v=aLFMJ_frafg) ================================================ FILE: docs/domain-driven-design/application-service.md ================================================ # Application Service ## 📕 Articles - [Domain services vs Application services](https://enterprisecraftsmanship.com/2016/09/08/domain-services-vs-application-services/) - [Implement the microservice application layer using the Web API](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/microservice-application-layer-implementation-web-api) - [Simple CQRS implementation with raw SQL and DDD](http://www.kamilgrzybek.com/design/simple-cqrs-implementation-with-raw-sql-and-ddd/) - [Should Controllers Reference Repositories or Services](https://ardalis.com/should-controllers-reference-repositories-services/) - [DDD: Domain Services & Application Services](https://mbarkt3sto.hashnode.dev/ddd-domain-services-application-services) ## 📺 Videos - [Introduction to Services Components](https://www.youtube.com/watch?v=Kr9di26CLek) ================================================ FILE: docs/domain-driven-design/bounded-context.md ================================================ # Bounded Context ## 📕 Articles - [Identify domain-model boundaries for each microservice](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/identify-microservice-domain-model-boundaries) - [Context is King: Finding Service Boundaries](https://codeopinion.com/context-is-king-finding-service-boundaries/) - [Defining Service Boundaries by Splitting Entities](https://codeopinion.com/defining-service-boundaries-by-splitting-entities/) - [BoundedContext](https://martinfowler.com/bliki/BoundedContext.html) - [Strategic DDD — Bounded Contexts](https://afedyanin.wordpress.com/2016/05/18/bounded-contexts/) - [Bounded Context](https://thedomaindrivendesign.io/bounded-context/) - [Bounded Context Canvas V3: Simplifications and Additions](https://medium.com/nick-tune-tech-strategy-blog/bounded-context-canvas-v2-simplifications-and-additions-229ed35f825f) - [Practical DDD: Bounded Contexts + Events => Microservices](https://www.infoq.com/presentations/microservices-ddd-bounded-contexts/) - [DDD Strategic Patterns: How To Define Bounded Contexts](https://codeburst.io/ddd-strategic-patterns-how-to-define-bounded-contexts-2dc70927976e) - [DDD Beyond the Basics: Mastering Multi-Bounded Context Integration](https://medium.com/ssense-tech/ddd-beyond-the-basics-mastering-multi-bounded-context-integration-ca0c7cec6561) ⭐ ## 📺 Videos - [Practical DDD: Bounded Contexts + Events - Microservices, with Indu Alagarsamy](https://www.youtube.com/watch?v=W15v6DSwOEk) - [Practical DDD: Bounded Contexts + Events = Microservices](https://www.youtube.com/watch?v=Ab5-ebHja3o) - [The Art of Discovering Bounded Contexts by Nick Tune](https://www.youtube.com/watch?v=ez9GWESKG4I) - [Mathias Verraes - Emergent Boundaries](https://www.youtube.com/watch?v=ECM1rPYxvD4) - [Context is King | Finding Service Boundaries Talk](https://www.youtube.com/watch?v=dnhshUdRW70) - [Defining Service Boundaries by Splitting Entities](https://www.youtube.com/watch?v=lGvYHmvXiyk) - [Bounded Contexts, Microservices, and Everything In Between - Vladik Khononov - KanDDDinsky 2018](https://www.youtube.com/watch?v=dlnu5pSsg7k) - [DDD & Microservices: At Last, Some Boundaries! • Eric Evans • GOTO 2015](https://www.youtube.com/watch?v=yPvef9R3k-M) ================================================ FILE: docs/domain-driven-design/domain-driven-design.md ================================================ # Domain Driven Design (DDD) - Domain Centric ## 📘 Resources - [Domain-Driven Design Starter Modelling Process](https://github.com/ddd-crew/ddd-starter-modelling-process) - [ddd-crew/free-ddd-learning-resources](https://github.com/ddd-crew/free-ddd-learning-resources#tactical-ddd--domain-as-code) - [How to learn Domain-Driven Design & Event Sourcing? Developer Journey Map and useful resources](https://dev.to/mateusznowak/how-to-learn-domain-driven-design-event-sourcing-my-own-developer-journey-map-and-useful-resources-308a) - [ardalis/DDD-NoDuplicates](https://github.com/ardalis/DDD-NoDuplicates) - [ardalis/awesome-ddd](https://github.com/ardalis/awesome-ddd) - [heynickc/awesome-ddd](https://github.com/heynickc/awesome-ddd) - [ddd-crew/ddd-starter-modelling-process](https://github.com/ddd-crew/ddd-starter-modelling-process) - [ddd-crew/core-domain-charts](https://github.com/ddd-crew/core-domain-charts) - [Sairyss/domain-driven-hexagon](https://github.com/Sairyss/domain-driven-hexagon) - [ddd-crew/context-mapping](https://github.com/ddd-crew/context-mapping) - [ddd-crew/welcome-to-ddd](https://github.com/ddd-crew/welcome-to-ddd) ## 📕 Articles - [Design a DDD-oriented microservice](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice) - [PPPDDD.1 – What is Domain Driven Design?](https://herbertograca.com/2016/08/15/pppddd-1-what-is-domain-driven-design/) - [PPPDDD.2 – Distilling the Problem Domain](https://herbertograca.com/2016/08/22/pppddd-2-distilling-the-problem-domain/) - [PPPDDD.3 – Focusing on the Core Domain](https://herbertograca.com/2016/10/03/pppddd-3-focusing-on-the-core-domain/) - [DDD Part 1: Strategic Domain-Driven Design](https://vaadin.com/blog/ddd-part-1-strategic-domain-driven-design) - [DDD Part 2: Tactical Domain-Driven Design](https://vaadin.com/blog/ddd-part-2-tactical-domain-driven-design) - [DDD Part 3: Domain-Driven Design and the Hexagonal Architecture](https://vaadin.com/blog/ddd-part-3-domain-driven-design-and-the-hexagonal-architecture) - [A Brief Intro to Clean Architecture, Clean DDD, and CQRS](https://blog.jacobsdata.com/2020/02/19/a-brief-intro-to-clean-architecture-clean-ddd-and-cqrs) - [A Basic Intro to Domain-Driven Design](https://blog.jacobsdata.com/2020/02/10/a-basic-intro-to-domain-driven-design) - [A Template for Clean Domain-Driven Design Architecture](https://blog.jacobsdata.com/2020/03/02/a-clean-domain-driven-design-architectural-template) - [Tackling Complexity in the Heart of DDD](https://vladikk.com/2016/04/05/tackling-complexity-ddd/) - [Strategic Domain-Driven Design](https://vaadin.com/learn/tutorials/ddd/strategic_domain_driven_design) - [Domain Driven Design re-distilled](https://yoan-thirion.medium.com/domain-driven-design-re-distilled-685e75595a60) - [A Basic Intro to Domain-Driven Design](https://medium.com/software-alchemy/a-basic-intro-to-domain-driven-design-bca832c09e9d) - [DDD and avoiding CRUD](https://stackoverflow.com/questions/23970567/ddd-and-avoiding-crud) - [Domain-centric vs data-centric approaches to software development](https://enterprisecraftsmanship.com/posts/domain-centric-vs-data-centric-approaches/) - [Experiences Going From Data-Driven Development to Domain-Driven Design](https://www.infoq.com/news/2013/10/data-driven-to-ddd/) - [Domain-Driven Design: What is it and how do you use it?](https://airbrake.io/blog/software-design/domain-driven-design) - [Data Points - Coding for Domain-Driven Design: Tips for Data-Focused Devs](https://docs.microsoft.com/en-us/archive/msdn-magazine/2013/august/data-points-coding-for-domain-driven-design-tips-for-data-focused-devs) - [Data Points - Coding for Domain-Driven Design: Tips for Data-Focused Devs, Part 2](https://docs.microsoft.com/en-us/archive/msdn-magazine/2013/september/data-points-coding-for-domain-driven-design-tips-for-data-focused-devs-part-2) - [Data Points - Coding for Domain-Driven Design: Tips for Data-Focused Devs, Part 3](https://docs.microsoft.com/en-us/archive/msdn-magazine/2013/october/data-points-coding-for-domain-driven-design-tips-for-data-focused-devs-part-3) - [Domain-centric Architectures are Cool, but Why ?](https://blog.cancobanoglu.net/2017/05/11/domain-centric-architectures-are-cool-but-why/) - [Clean Architecture : Part 1 – Database vs Domain](https://crosp.net/blog/software-architecture/clean-architecture-part-1-databse-vs-domain/) - [Domain Centric Architecture ve Domain Driven Design](http://cagataykiziltan.net/tr/domain-centric-architecture-ve-domain-driven-design/) - [AVOID Entity Services by Focusing on Capabilities](https://codeopinion.com/avoid-entity-services-by-focusing-on-capabilities/) - [Domains and Subdomains](https://thedomaindrivendesign.io/domains-and-subdomains/) - [Scaffold Your Clean DDD Web Application - Part 6: Domain-Driven Design Workflow Patterns](https://blog.jacobsdata.com/2021/04/11/scaffold-your-clean-ddd-web-application-part-6-domain-driven-design-workflow-patterns) - [Domain-Driven Architecture Diagrams](https://medium.com/nick-tune-tech-strategy-blog/domain-driven-architecture-diagrams-139a75acb578) - [3 things that will make or break your project](https://enterprisecraftsmanship.com/posts/3-things-that-will-make-or-break-your-project/) - [Strengthening your domain: a primer](https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/) - [Strengthening your domain: Aggregate Construction](https://lostechies.com/jimmybogard/2010/02/24/strengthening-your-domain-aggregate-construction/) - [Strengthening your domain: Encapsulated collections](https://lostechies.com/jimmybogard/2010/03/10/strengthening-your-domain-encapsulated-collections/) - [Strengthening your domain: Encapsulating operations](https://lostechies.com/jimmybogard/2010/03/24/strengthening-your-domain-encapsulating-operations/) - [Strengthening your domain: Avoiding setters](https://lostechies.com/jimmybogard/2010/03/31/strengthening-your-domain-avoiding-setters/) - [Strengthening your domain: The double dispatch pattern](https://lostechies.com/jimmybogard/2010/03/30/strengthening-your-domain-the-double-dispatch-pattern/) - [10 Lessons from a Long Running DDD Project – Part 1](https://lostechies.com/jimmybogard/2016/06/13/10-lessons-from-a-long-running-ddd-project-part-1/) - [10 Lessons from a Long Running DDD Project – Part 2](https://lostechies.com/jimmybogard/2016/06/20/10-lessons-from-a-long-running-ddd-project-part-2/) - [DDD revisited](https://lostechies.com/gabrielschenker/2015/04/16/ddd-revisited/) - [Integrity of Collections in Domain-Driven Design](https://ankitvijay.net/2020/05/10/integrity-of-collections-in-domain-driven-design/) - [Introduction to DDD Lite: When microservices in Go are not enough](https://threedots.tech/post/ddd-lite-in-go-introduction/) - [Domain-Driven Refactoring: Intro](https://jimmybogard.com/domain-driven-refactoring-intro/) - [Domain-Driven Design in ASP.NET Core applications](https://enlabsoftware.com/development/domain-driven-design-in-asp-net-core-applications.html) - [Introduction to DDD Lite: When microservices in Go are not enough](https://threedots.tech/post/ddd-lite-in-go-introduction/) - [DDD and bulk operations](https://enterprisecraftsmanship.com/posts/ddd-bulk-operations/) - [STOP doing dogmatic Domain Driven Design](https://codeopinion.com/stop-doing-dogmatic-domain-driven-design/) - [Strategic Domain-Driven Design](https://dev.to/peholmst/strategic-domain-driven-design-3e87) - [Tactical Domain-Driven Design](https://dev.to/peholmst/tactical-domain-driven-design-17dp) - [Domain-Driven Design and the Hexagonal Architecture](https://dev.to/peholmst/domain-driven-design-and-the-hexagonal-architecture-2o87) - [Using Value Objects with JPA](https://dev.to/peholmst/using-value-objects-with-jpa-27mi) - [Building Aggregates with Spring Data](https://dev.to/peholmst/building-aggregates-with-spring-data-2iig) - [Building Repositories with Spring Data](https://dev.to/peholmst/building-repositories-with-spring-data-1mbd) - [Publishing Domain Events with Spring Data](https://dev.to/peholmst/publishing-domain-events-with-spring-data-53m2) - [DDD.1 – Crunching knowledge](https://herbertograca.com/2015/09/07/book-review-domain-driven-design-by-eric-evans-1-crunching-knowledge/) - [DDD.2 – Communication and the use of language](https://herbertograca.com/2015/09/12/domain-driven-design-by-eric-evans-chap-2-comunication-and-the-use-of-language/) - [DDD.3 – Binding model and implementation](https://herbertograca.com/2015/09/16/domain-driven-design-by-eric-evans-chap-3-binding-model-and-implementation/) - [DDD.4 – Isolating the domain](https://herbertograca.com/2015/09/18/domain-driven-design-by-eric-evans-chap-4-isolationg-the-domain/) - [DDD.5 – A model expressed in software](https://herbertograca.com/2015/09/29/domain-driven-design-by-eric-evans-chap-5-a-model-expressed-in-software/) - [DDD.6 – The lifecycle of a domain object](https://herbertograca.com/2015/10/04/domain-driven-design-by-eric-evans-chap-6-the-lifecycle-of-a-domain-object/) - [Change Tracking while doing DDD](https://www.ledjonbehluli.com/posts/change_tracking_ddd/) - [Domain-Driven Refactoring: Procedural Beginnings](https://jimmybogard.com/domain-driven-refactoring-procedural-beginnings/) - [Domain-Driven Refactoring: Long Methods](https://jimmybogard.com/domain-driven-refactoring-long-methods/) - [Domain-Driven Refactoring: Extracting Domain Services](https://jimmybogard.com/domain-driven-refactoring-extracting-domain-services/) - [Domain-Driven Refactoring: Defactoring and Pushing Behavior Down](https://jimmybogard.com/domain-driven-refactoring-defactoring-and-pushing-behavior-down/) - [Domain-Driven Refactoring: Encapsulating Data](https://jimmybogard.com/domain-driven-refactoring-encapsulating-data/) - [Combining DDD, CQRS, and Clean Architecture by refactoring a Go project](https://threedots.tech/post/ddd-cqrs-clean-architecture-combined/) - [Design a No Duplicates Rule in your Domain Model?](https://ardalis.com/design-no-duplicates-rule-in-domain-model/?utm_sq=gliw3qv7yr) - [EF Core 2.1 vs NHibernate 5.1: DDD perspective](https://enterprisecraftsmanship.com/posts/ef-core-vs-nhibernate-ddd-perspective/) - [How to Handle Updates on Aggregates - Domain-Driven Design w/ TypeScript](https://khalilstemmler.com/articles/typescript-domain-driven-design/updating-aggregates-in-domain-driven-design/) - [DDD: guidance on updating multiple properties of entities](https://stackoverflow.com/questions/33698225/ddd-guidance-on-updating-multiple-properties-of-entities) - [Practical DDD in Golang: Aggregate](https://levelup.gitconnected.com/practical-ddd-in-golang-aggregate-de13f561e629) - [What is Domain-Driven Design (DDD)](https://verraes.net/2021/09/what-is-domain-driven-design-ddd/) - [Domain-Driven Refactoring: Encapsulating Collections](https://jimmybogard.com/domain-driven-refactoring-encapsulating-collections/) - [Change Tracking while doing DDD (Revisited)](https://www.ledjonbehluli.com/posts/change_tracking_ddd_revisited/) - [How to create better code using Domain-Driven Design](https://altkomsoftware.pl/en/blog/create-better-code-using-domain-driven-design/) - [Implementing Domain Driven Design: Part I](https://dev.to/salah856/implementing-domain-driven-design-part-i-5a72) - [Implementing Domain Driven Design: Part II](https://dev.to/salah856/implementing-domain-driven-design-part-ii-2i36) - [Implementing Domain Driven Design: Part III](https://dev.to/salah856/implementing-domain-driven-design-part-iii-pe8) - [Implementing Domain Driven Design: Part IV](https://dev.to/salah856/implementing-domain-driven-design-part-iv-29m2) - [What is domain-centric architecture?](https://jlasoc.medium.com/what-is-domain-centric-architecture-e030e609c401) - [Modeling Relationships in a DDD Way](https://enterprisecraftsmanship.com/posts/modeling-relationships-in-ddd-way/) - [How to create better code using Domain-Driven Design](https://www.altkomsoftware.com/blog/create-better-code-using-domain-driven-design/) - [DDD building blocks - Kamil Lelonek](https://blog.lelonek.me/ddd-building-blocks-for-ruby-developers-cdc6c25a80d2) - [Implementing Domain Driven Design](https://docs.abp.io/en/abp/4.0/Domain-Driven-Design-Implementation-Guide) - [Domain-Driven Design: Everything You Always Wanted to Know About it, But Were Afraid to Ask](https://medium.com/ssense-tech/domain-driven-design-everything-you-always-wanted-to-know-about-it-but-were-afraid-to-ask-a85e7b74497a) ⭐⭐ - [Domain-Driven Design: A Walkthrough of Building an Aggregate](https://betterprogramming.pub/domain-driven-design-a-walkthrough-of-building-an-aggregate-c84113aa9975) ⭐ - [Domain-Driven Design: Domain Events and Integration Events in .Net](https://betterprogramming.pub/domain-driven-design-domain-events-and-integration-events-in-net-5a2a58884aaa) ⭐ - [Mastering Strategic Domain-Driven Design – 1. The Beginning](https://meaboutsoftware.com/2023/07/24/mastering-strategic-domain-driven-design-1-the-beginning/) - [Mastering Strategic Domain-Driven Design – 2. The Domain](https://meaboutsoftware.com/2023/08/06/mastering-strategic-domain-driven-design-2-the-domain/) - [Mastering Strategic Domain-Driven Design – 3. Draft of Subdomains](https://meaboutsoftware.com/2023/10/01/mastering-strategic-domain-driven-design-3-draft-of-subdomains/) - [Mastering Strategic Domain-Driven Design – 4. Tuning of Subdomains](https://meaboutsoftware.com/2023/11/26/mastering-strategic-domain-driven-design-4-tuning-of-subdomains/) ## 📺 Videos - [Java EE: Design Patterns and Architecture](https://www.linkedin.com/learning/java-ee-design-patterns-and-architecture/advantages-and-disadvantages-4) - [AVOID Entity Services by Focusing on Capabilities](https://www.youtube.com/watch?v=2gOOstEI4vU) - [Domain-Driven Refactoring - Jimmy Bogard - NDC Oslo 2020](https://www.youtube.com/watch?v=_dQRAsVhCqA) - [Jimmy Bogard - Crafting Wicked Domain Models](https://vimeo.com/43598193) - [Jimmy Bogard - Domain-Driven Refactoring](https://www.youtube.com/watch?v=WfG_WSQo0Fw) - [Jimmy Bogard - Domain Driven Design: The Good Parts](https://www.youtube.com/watch?v=L3SvIKdLt88) - [STOP "doing" Domain Driven Design](https://www.youtube.com/watch?v=8XmXhXH_q90) - [Webinar: Domain Driven Design](https://www.youtube.com/watch?v=dq7e_L4jIak) - [The Intersection of Microservices, Domain-Driven Design and Entity Framework Core](https://www.youtube.com/watch?v=DG8Qe7TJiIE) - [Decomposing CRUD to a Task Based UI](https://www.youtube.com/watch?v=DjZepWrAKzM) - [Vladimir Khorikov: DDD in a nutshell](https://www.youtube.com/watch?v=kPV1SkdSnhE) - [DDD as Low-Code](https://www.youtube.com/watch?v=yohu6qx8-dU) - [Is Domain-Driven Design Overrated? • Stefan Tilkov • GOTO 2021](https://www.youtube.com/watch?v=ZZp9RQEGeqQ) - [Do you have enough Complexity for a Domain Model (Domain Driven Design)?](https://www.youtube.com/watch?v=L1foFiqopIc) - [Getting modules right with Domain-driven Design by Michael Plöd - Spring I/O 2022 Sessions](https://www.youtube.com/watch?v=Q_0XW46IlHY) - [Hands-on case-study context mapping with Michael Plöd](https://www.youtube.com/watch?v=OthhRfqp-44) - [All our aggregates are wrong - Mauro Servienti](https://www.youtube.com/watch?v=hev65ozmYPI) - [DDD in large product portfolios - Andreas Pinhammer](https://www.youtube.com/watch?v=FzycqiJVioI) - [Slim down your aggregates! - Oskar Dudycz](https://www.architecture-weekly.com/p/webinar-8-slim-down-your-aggregates) - [DDD - Service Boundaries (Adam Ralph)](https://www.youtube.com/watch?v=I5fhtBQ2wQU) ## 🚀 Samples - [eShopOnContainers](https://github.com/dotnet-architecture/eShopOnContainers) - Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 5, Docker Containers and Azure Kubernetes Services. Supports Visual Studio, VS for Mac and CLI based environments with Docker CLI, dotnet CLI, VS Code or any other code editor. - [kimcu-on-thenet/ddd-net-ef-core](https://github.com/kimcu-on-thenet/ddd-net-ef-core) - Self study: DDD, .net core, entity framework core - [blog-core](https://github.com/thangchung/blog-core) - Modular blog using Blazor with clean domain-driven design patterns - [practical-clean-ddd](https://github.com/thangchung/practical-clean-ddd) - The repository uses the eCommerce business domain to demonstrate how to apply Domain Driven Design, Clean Architecture, and Microservice Architecture patterns. - [ddd-guestbook](https://github.com/ardalis/ddd-guestbook) - A DDD guestbook example written for ASP.NET Core - [run-aspnetcore](https://github.com/aspnetrun/run-aspnetcore) - A starter kit for your next ASP.NET Core web application. Boilerplate for ASP.NET Core reference application, demonstrating a layered application architecture with applying Clean Architecture and DDD - [run-aspnetcore-realworld](https://github.com/aspnetrun/run-aspnetcore-realworld) - E-Commerce real world example of run-aspnetcore ASP.NET Core web application. Implemented e-commerce domain with clean architecture for ASP.NET Core reference application, demonstrating a layered application architecture with DDD best practices. - [gothinkster/aspnetcore-realworld-example-app](https://github.com/gothinkster/aspnetcore-realworld-example-app) - ASP.NET Core backend implementation for RealWorld - [DDD-starter-dotnet](https://github.com/itlibrium/DDD-starter-dotnet) - Sample implementation and comparison of various approaches to building DDD applications. Useful as a baseline to quickly start a DDD dot net project. - [hOrgManager](https://github.com/JacobsDataSolutions/OrgManager) - CQRS and Clean Domain-Driven Design concepts on the ASP.NET Core stack. Demo application for a fictional corporate organization management tool. - [ChristDDD](https://github.com/anjoy8/ChristDDD) - [library](https://github.com/ddd-by-examples/library) - A comprehensive Domain-Driven Design example with problem space strategic analysis and various tactical patterns. - [Aggregates.NET](https://github.com/charlessolar/Aggregates.NET) - .NET event sourced domain driven design model via NServiceBus and GetEventStore - [eShopOnContainersDDD](https://github.com/charlessolar/eShopOnContainersDDD) - Fork of dotnet-architecture/eShopOnContainers in full DDD/CQRS design using my own patterns - [ddd-and-eventsourcing-example](https://github.com/eraydin/ddd-and-eventsourcing-example) - [educational-platform](https://github.com/anton-liauchuk/educational-platform) - Modular Monolith Java application with DDD - [coolstore-moduliths](https://github.com/thangchung/coolstore-moduliths) - The coolstore website on modular monolith approach - [modular-monolith-with-ddd](https://github.com/kgrzybek/modular-monolith-with-ddd) - Full Modular Monolith application with Domain-Driven Design approach. - [coolstore-microservices](https://github.com/vietnam-devs/coolstore-microservices) - A full-stack .NET microservices build on Dapr and Tye - [smartstore/SmartStoreNET](https://github.com/smartstore/SmartStoreNET) - Open Source ASP.NET MVC Enterprise eCommerce Shopping Cart Solution - [smartstore/Smartstore](https://github.com/smartstore/Smartstore) - Open Source ASP.NET Core Enterprise eCommerce Shopping Cart Solution - [VirtoCommerce/vc-storefront](https://github.com/VirtoCommerce/vc-storefront) - VirtoCommerce Storefront for ASP.NET Core 3.1 repository - [VirtoCommerce/vc-module-customer](https://github.com/VirtoCommerce/vc-module-customer/) - Contacts management module - [VirtoCommerce/vc-platform](https://github.com/VirtoCommerce/vc-platform) - VirtoCommerce Platform repository - [nopSolutions/nopCommerce](https://github.com/nopSolutions/nopCommerce) - The most popular open-source eCommerce shopping cart solution based on ASP.NET Core - [trueai-org/module-shop](https://github.com/trueai-org/module-shop) - [pdevito3/craftsman](https://github.com/pdevito3/craftsman) - Craftsman is the workhorse behind the Wrapt framework and provides a suite of CLI commands for quickly scaffolding out new files and projects for your .NET Web APIs with simple CLI commands and configuration files. - [nguyentrucxinh/AspNetCore-DDD](https://github.com/nguyentrucxinh/AspNetCore-DDD) - Full ASP.NET Core 3.1 LTS application with DDD, CQRS and Event Sourcing - [falberthen/EcommerceDDD](https://github.com/falberthen/EcommerceDDD) - A lightweight ASP.NET Core SPA (Angular) showcase of Domain-Driven Design, CQRS, and Event Sourcing. - [DevBetterCom/DevBetterWeb](https://github.com/DevBetterCom/DevBetterWeb) - A simple web application for devBetter - [baratgabor/MyWarehouse](https://github.com/baratgabor/MyWarehouse) - Clean Architecture and Domain Driven Design sample project based on C# 9 / .NET 5 / ASP.NET Core 5 / EF Core 5 & Angular 11 with Bootstrap. - [ThreeDotsLabs/wild-workouts-go-ddd-example](https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-example?utm_source=about-wild-workouts) - Go DDD example application. Complete project to show how to apply DDD, Clean Architecture, and CQRS by practical refactoring of a Go project. - [peholmst/DDDExample](https://github.com/peholmst/DDDExample) - Example application for my TechLunch @ Vaadin about DDD and the Hexagonal Architecture - [EnLabSoftware/HRManagement](https://github.com/EnLabSoftware/HRManagement) - [ledjon-behluli/SeparateDMAndPmWithTracking](https://github.com/ledjon-behluli/SeparateDMAndPmWithTracking) - [marcinstelmach/AwesomeBank](https://github.com/marcinstelmach/AwesomeBank) - Bank system in .NET 5.0 using DDD, CQRS, modular monolith architecture - [stemmlerjs/ddd-forum](https://github.com/stemmlerjs/ddd-forum) - Hacker news-inspired forum app built with TypeScript using DDD practices from solidbook.io. - [AlphaYu/Adnc](https://github.com/AlphaYu/Adnc) - The microservice framework is also suitable for the development of monolithic architecture systems. It supports the classic three-tier and DDD architecture development model, and integrates a series of mainstream and stable microservice supporting technology stacks. A framework with front-end and back-end separation. The front-end is based on Vue and the back-end is built on .Net 5.0. - [grandnode/grandnode](https://github.com/grandnode/grandnode) - Free and Open Source Ecommerce Shopping Cart solution based on ASP.NET CORE and MongoDB - [grandnode/grandnode2](https://github.com/grandnode/grandnode2) - Open source, headless, multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, Vue.js. - [MongkonEiadon/VehicleTracker](https://github.com/MongkonEiadon/VehicleTracker) - Vehicle Tracker with Microservice example - [yang-xiaodong/eShopOnContainers](https://github.com/yang-xiaodong/eShopOnContainers) - Replace eShopOnContainers EventBus with CAP - [CodelyTV/typescript-ddd-example](https://github.com/CodelyTV/typescript-ddd-example) - TypeScript DDD Example: Bootstrap your new projects or be inspired by this example project - [ardalis/DDD-NoDuplicates](https://github.com/ardalis/DDD-NoDuplicates) - [DarekModzelewski/Contoso-University-DDD](https://github.com/DarekModzelewski/Contoso-University-DDD) - [ttulka/ddd-example-ecommerce](https://github.com/ttulka/ddd-example-ecommerce) - Domain-driven design example in Java with Spring framework - [ttulka/ddd-example-ecommerce-microservices](https://github.com/ttulka/ddd-example-ecommerce-microservices) - Domain-driven design microservices example - [marcinstelmach/Ecommerce.Api](https://github.com/marcinstelmach/Ecommerce.Api) - Ecommerce in .net core 2.2, C#, MediaTr, CQRS, DDD, Autofac, DI, Entity Framework Core, Memory Cache, Serilog - [thiagocruzrj/E-commerce-DDD](https://github.com/thiagocruzrj/E-commerce-DDD) - DDD applied in E-commerce context. - [kalintsenkov/BettingSystem](https://github.com/kalintsenkov/BettingSystem) - ASP.NET Core | Domain-Driven Design | Clean Architecture - [VasilisGaitanidis/master-containerized-microservices](https://github.com/VasilisGaitanidis/master-containerized-microservices) - This repo contains a sample application based on a fictional eCommerce. The primary goal of this sample is to demonstrate several software-architecture concepts like: Clean Architecture, Microservices, CQRS, Event Sourcing, Publish-Subscribe Architecture, Domain Driven Design (DDD). Currently this is a work in progress. - [MesutAtasoy/Joker](https://github.com/MesutAtasoy/Joker) - An example of microservices container based application which implemented different approaches within each microservice (DDD, CQRS, Simple CRUD) - [canperk/NorthindDomainDrivenDesignSample](https://github.com/canperk/NorthindDomainDrivenDesignSample) - DDD with Northwind Sample Database - [thangchung/northwind-dotnet](https://github.com/thangchung/northwind-dotnet) - A full-stack .NET 6 Microservices build on Minimal APIs and C# 10 - [sedatkocaer34/NorthwindDDDSample](https://github.com/sedatkocaer34/NorthwindDDDSample) - [andresantarosa/CleanArchitectureExample](https://github.com/andresantarosa/CleanArchitectureExample) - CleanArchitectureExample Project - [asc-lab/better-code-with-ddd](https://github.com/asc-lab/better-code-with-ddd) - This repository contains code that accompanies presentation ASC LAB team gave at meetup about “Creating better code with Domain Driven Design”. - [wkrzywiec/library-hexagonal](https://github.com/wkrzywiec/library-hexagonal) - An example application written in Hexagonal (Ports and Adapter) architecture - [zkavtaskin/Domain-Driven-Design-Example](https://github.com/zkavtaskin/Domain-Driven-Design-Example) - Blog series supplementary domain-driven design C# repository that (hopefully) actually makes sense. - [hamed-shirbandi/TaskoMask](https://github.com/hamed-shirbandi/TaskoMask) - [NHadi/Pos](https://github.com/NHadi/Pos) - Sample Application DDD, Reactive Microservices, CQRS Event Sourcing Powered by DERMAYON LIBRARY - [DijanaPenic/DDD-VShop](https://github.com/DijanaPenic/DDD-VShop) - VShop is a sample .NET 6 application built as Modular Monolith with Domain-Driven Design (DDD) approach. Each module is an independent vertical slice with its custom architecture. - [m-jovanovic/event-reminder](https://github.com/m-jovanovic/event-reminder) - .NET Core Web API for seamless event organization with configurable notification systems. - [jbogard/presentations/DomainDrivenRefactoring](https://github.com/jbogard/presentations/tree/master/DomainDrivenRefactoring) - [pdevito3/domain-events-example](https://github.com/pdevito3/domain-events-example) - [bymyslf/payment-gateway](https://github.com/bymyslf/payment-gateway) - A sample project using Hexagonal (Ports & Adapters) architecture, Event Sourcing, CQRS and DDD tactical patterns - [idugalic/digital-restaurant](https://github.com/idugalic/digital-restaurant) - DDD. Event sourcing. CQRS. REST. Modular. Microservices. Kotlin. Spring. Axon platform. Apache Kafka. RabbitMQ - [schananas/reactive-stock-market](https://github.com/schananas/reactive-stock-market) - This project takes you through the design of simple stock market application based on custom reactive CQRS framework - [AntonioFalcaoJr/Dotnet6.GraphQL4.WebApplication](https://github.com/AntonioFalcaoJr/Dotnet6.GraphQL4.WebApplication) - This project exemplifies the implementation and dockerization of a simple Razor Web MVC Core consuming a full GraphQL 4 Web API, build in a .NET 6 multi-layer project, considering development best practices - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - A full-stack .NET 7 EDA solution - [ddd-by-examples/cinema](https://github.com/ddd-by-examples/cinema) - Cinema playground - example repo from reserving seats with different rules - [pdevito3/PeakLimsApi](https://github.com/pdevito3/PeakLimsApi) - A complex DDD based web API to model the accessioning workflow within a LIMS. - [MarkNijhof/Fohjin](https://github.com/MarkNijhof/Fohjin) - This is a personal sand box - [CodelyTV/csharp-ddd-skeleton](https://github.com/CodelyTV/csharp-ddd-skeleton) - C# DDD Skeleton: Bootstrap your new C# projects applying Hexagonal Architecture and Domain-Driven Design patterns - [klimisa/aggregate-implementation-patterns-csharp](https://github.com/klimisa/aggregate-implementation-patterns-csharp) - Aggregate implementations workshop port to C# - [oskardudycz/EventSourcing.NetCore/Sample/HotelManagement](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/HotelManagement) - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - The main objective of this cloud-native project is to represent the state of the art of a distributed, reliable, and highly scalable system by interpreting the most relevant principles of Reactive Domain Driven Design. - [matt-bentley/DDDMart](https://github.com/matt-bentley/DDDMart) - Sample eCommerce application using Domain Driven Design - [Nairda015/IGroceryStore](https://github.com/Nairda015/IGroceryStore) - IGroceryStore - Loosely coupled monolith app - [bitloops/ddd-hexagonal-cqrs-es-eda](https://github.com/bitloops/ddd-hexagonal-cqrs-es-eda) - Complete working example of using Domain Driven Design (DDD), Hexagonal Architecture, CQRS, Event Sourcing (ES), Event Driven Architecture (EDA), Behaviour Driven Development (BDD) using TypeScript and NestJS - [m-khooryani/OverCloudAirways](https://github.com/m-khooryani/OverCloudAirways) - [evolutionary-architecture/evolutionary-architecture-by-example](https://github.com/evolutionary-architecture/evolutionary-architecture-by-example) ⭐ - Navigate the complex landscape of .NET software architecture with our step-by-step, story-like guide. Unpack the interplay between modular monoliths, microservices, domain-driven design, and various architectural patterns. - [kamilbaczek/Estimation-Tool](https://github.com/kamilbaczek/Estimation-Tool) ⭐ - Modular monolith architecture example in .NET. Estimation Tool is tool to optimize estimation process in IT company. - [baranacikgoz/modular-monolith-ddd-vsa-webapi](https://github.com/baranacikgoz/modular-monolith-ddd-vsa-webapi) - A .NET 8 Webapi boilerplate with Modular Monolith approach, Domain-Driven Design and Vertical Slices architecture along with Clean Architecture principles per feature - [oskardudycz/EventSourcing.NetCore/ECommerce](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/ECommerce) - [oskardudycz/EventSourcing.NetCore/Sample/Tickets](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/Tickets) - [oskardudycz/EventSourcing.NetCore/Sample/MeetingsManagement](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/MeetingsManagement) - [oskardudycz/EventSourcing.NetCore/Sample/Warehouse](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/Warehouse) - [EventSourcing.NetCore/tree/main/Sample/Warehouse.MinimalAPI](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/Warehouse.MinimalAPI) ⭐ - [oskardudycz/kandddinsky2024](https://github.com/oskardudycz/kandddinsky2024) ⭐ - [oskardudycz/slim-down-your-aggregate/tree/main/csharp/Original](https://github.com/oskardudycz/slim-down-your-aggregate) ⭐ ## 📦 Libraries - [Eventuous/eventuous](https://github.com/Eventuous/eventuous) - Minimalistic Event Sourcing library for .NET - [xhafan/coreddd](https://github.com/xhafan/coreddd) - A set of open-source .NET libraries helping with domain-driven design (DDD) and CQRS - [eventflow/EventFlow](https://github.com/eventflow/EventFlow) - Async/await first CQRS+ES and DDD framework for .NET - [oskardudycz/GoldenEye](https://github.com/oskardudycz/GoldenEye) - The CQRS flavoured framework that will speed up your WebAPI and Microservices development - [Shriek-Projects/shriek-fx](https://github.com/Shriek-Projects/shriek-fx) - An easy-to-use rapid development framework developed on the basis of.NET Core 2.0, following the constraints of domain Driven Design (DDD) specifications, combined with the CQRS architecture to provide the infrastructure for event-driven, event backtracking, responsiveness, and more. Let developers enjoy the true meaning of object-oriented - [daxnet/apworks-core](https://github.com/daxnet/apworks-core) - Apworks framework supporting .NET Core - [node-ts/ddd](https://github.com/node-ts/ddd) - A Domain Driven Design framework for software simplicity in node - [revoframework/Revo](https://github.com/revoframework/Revo) - Event Sourcing, CQRS and DDD framework for C#/.NET Core - [lucabriguglia/OpenCQRS](https://github.com/lucabriguglia/OpenCQRS) - .NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing. - [kalintsenkov/BookStore](https://github.com/kalintsenkov/BookStore) - ASP.NET Core | Domain-Driven Design | Clean Architecture ## 📚 Books - [Domain-Driven Design: Tackling Complexity in the Heart of Software 1st Edition](https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/) - [Domain - Driven Design: Atacando as Complexidades no Coracao do Software Paperback – January 1, 2016](https://www.amazon.com/Domain-Atacando-Complexidades-Coracao-Software-dp-8550800651/dp/8550800651/) - [Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy 1st Edition](https://www.amazon.com/Learning-Domain-Driven-Design-Aligning-Architecture/dp/1098100131/) - [Domain-Driven Design Distilled 1st Edition](https://www.amazon.com/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420) - [Implementing Domain-Driven Design 1st Edition](https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577) - [Patterns, Principles, and Practices of Domain-Driven Design 1st Edition](https://www.amazon.com/Patterns-Principles-Practices-Domain-Driven-Design/dp/1118714709) - [Hands-On Domain-Driven Design with .NET Core: Tackling complexity in the heart of software by putting DDD principles into practice](https://www.amazon.com/Hands-Domain-Driven-Design-NET/dp/1788834097/ref=pd_vtp_5/137-5137322-0498527) - [Domain-Driven Design The First 15 Years Essays from the community](https://dddeurope.com/15years/) - [ABP - Implementing Domain Driven Design](https://abp.io/books/implementing-domain-driven-design) - [Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#](https://www.amazon.com/Domain-Modeling-Made-Functional-Domain-Driven/dp/1680502549) - [Collaborative Software Design - How to facilitate domain modeling decisions](https://www.manning.com/books/collaborative-software-design) ================================================ FILE: docs/domain-driven-design/domain-events.md ================================================ # Domain Events ## 📕 Articles - [How to publish and handle Domain Events](http://www.kamilgrzybek.com/design/how-to-publish-and-handle-domain-events/) - [Handling Domain Events: Missing Part](http://www.kamilgrzybek.com/design/handling-domain-events-missing-part/) - [The Outbox Pattern](http://www.kamilgrzybek.com/design/the-outbox-pattern/) - [Domain Events – Salvation](https://udidahan.com/2009/06/14/domain-events-salvation/) - [Domain events: design and implementation](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/domain-events-design-implementation) - [Events on the outside, on the inside and at the core](https://chrisrichardson.net/post/microservices/2021/02/21/events-are-the-core.html) - [Strengthening your domain: Domain Events](https://lostechies.com/jimmybogard/2010/04/08/strengthening-your-domain-domain-events/) - [Don't publish Domain Events, return them!](https://blog.jayway.com/2013/06/20/dont-publish-domain-events-return-them/) - [Using Domain Events within a .NET Core Microservice](https://devblogs.microsoft.com/cesardelatorre/using-domain-events-within-a-net-core-microservice/) - [Domain Events Pattern Example](https://tonytruong.net/domain-events-pattern-example/) - [A better domain events pattern](https://lostechies.com/jimmybogard/2014/05/13/a-better-domain-events-pattern/) - [Strengthening your domain: a primer](https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/) - [Strengthening your domain: Domain Events](https://lostechies.com/jimmybogard/2010/04/08/strengthening-your-domain-domain-events/) - [Implementing event-based communication between microservices (integration events)](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/integration-event-based-microservice-communications) - [DDD and Messaging Architectures](https://verraes.net/2019/05/ddd-msg-arch/) - [Domain events: simple and reliable solution](https://enterprisecraftsmanship.com/posts/domain-events-simple-reliable-solution/) - [Domain Events Pattern Example](https://tonytruong.net/domain-events-pattern-example) - [Domain Events](https://verraes.net/2014/11/domain-events/) - [Patterns for Decoupling in Distributed Systems: Explicit Public Events](http://verraes.net/2019/05/patterns-for-decoupling-distsys-explicit-public-events/) - [Immediate Domain Event Salvation with MediatR](https://ardalis.com/immediate-domain-event-salvation-with-mediatr/) - [Design a No Duplicates Rule in your Domain Model?](https://ardalis.com/design-no-duplicates-rule-in-domain-model/?utm_sq=gz8joz8bw5) - [From Domain to Integration Events](https://www.ledjonbehluli.com/posts/domain_to_integration_event/) - [Domain Events - Before Persistence](https://www.weeklydevtips.com/episodes/022) - [Domain Events - After Persistence](https://weeklydevtips.com/episodes/23-f8eec63c) - [Decoupling Logic with Domain Events - Domain-Driven Design w/ TypeScript](https://khalilstemmler.com/articles/typescript-domain-driven-design/chain-business-logic-domain-events/) - [Domain Events in DDD](https://emacsway.github.io/ru/domain-events-in-ddd/) - [Practical DDD in Golang: Domain Event](https://levelup.gitconnected.com/practical-ddd-in-golang-domain-event-de02ad492989) - [Simple Domain Events with EFCore and MediatR](https://cfrenzel.com/domain-events-efcore-mediatr/) - [Design validations in the domain model layer](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations) - [6 Code Smells with your CQRS Events – and How to Avoid Them](https://danielwhittaker.me/2014/10/18/6-code-smells-cqrs-events-avoid/) - [Domain Events - Alexey Zimarev](https://alexey-zimarev.medium.com/domain-events-f56555258cf5) - [.NET Domain Events Using MediatR](https://wrapt.dev/blog/dotnet-domain-events) - [Leaking Value Objects from your Domain](https://codeopinion.com/leaking-value-objects-from-your-domain/) ⭐ - [Why we Avoid Putting Value Objects in Events](https://buildplease.com/pages/vos-in-events/) ⭐ - [Domain-Driven Design: Domain Events and Integration Events in .Net](https://betterprogramming.pub/domain-driven-design-domain-events-and-integration-events-in-net-5a2a58884aaa) ⭐ - [From domain events to infrastructure - thinking out loud about possible approaches I don’t hate](https://blog.codingmilitia.com/2023/05/16/from-domain-events-to-infrastructure-thinking-out-loud-about-possible-approaches-i-dont-hate/) - [Internal and external events, or how to design event-driven API](https://event-driven.io/en/internal_external_events/) ## 🚀 Samples - [ardalis/CleanArchitecture](https://github.com/ardalis/CleanArchitecture/blob/main/src/Clean.Architecture.Infrastructure/Data/AppDbContext.cs) - [vietnam-devs/coolstore-microservices](https://github.com/vietnam-devs/coolstore-microservices/blob/da6b9e0d0120693e0239a1dc4077ba452163d61a/src/BasicBuildingBlocks/N8T.Infrastructure.EfCore/Extensions.cs#L63) - [thangchung/clean-architecture-dotnet](https://github.com/thangchung/clean-architecture-dotnet/blob/main/src/N8T.Infrastructure.EfCore/TxBehavior.cs#L55) - [vkhorikov/DddAndEFCore](https://github.com/vkhorikov/DddAndEFCore/blob/master/src/App/SchoolContext.cs#L110) - [kgrzybek/modular-monolith-with-ddd/blob/90ab9b20a1c6e11700e8b357929c5f792b2b32bf/src/BuildingBlocks/Infrastructure/UnitOfWork.cs#L27](https://github.com/kgrzybek/modular-monolith-with-ddd/blob/90ab9b20a1c6e11700e8b357929c5f792b2b32bf/src/BuildingBlocks/Infrastructure/UnitOfWork.cs#L27) - [ardalis/AggregateEvents](https://github.com/ardalis/AggregateEvents) ## 📺 Videos - [Working on ASP.NET Core apps: eShopOnWeb and Domain Events](https://youtu.be/x-UXUGVLMj8?t=4462) - [Implementing Domain Events with Entity Framework Core](https://www.youtube.com/watch?v=SbMbWmmukws) - [GOTO 2019 • Temporal Modelling • Mathias Verraes](https://www.youtube.com/watch?v=KNqOWT0lOYY) - [Leaking Value Objects from your Domain](https://www.youtube.com/watch?v=CdanF8PWJng) ⭐ ================================================ FILE: docs/domain-driven-design/domain-primitives.md ================================================ # Primitive obsession ## 📕 Articles - [My Take On Domain Primitives](https://svenhuebner-it.com/my-take-on-domain-primitives/) - [Domain Primitives I: easily declaring domain primitives](https://svenhuebner-it.com/domain-primitives-i-easily-declaring-domain-primitives/) - [Domain Primitives II: forcing developers to deal with error cases](https://svenhuebner-it.com/domain-primitives-ii-forcing-developers-to-deal-with-error-cases/) - [Domain Primitives III: easily creating domain-primitive-based data structures from raw data](https://svenhuebner-it.com/domain-primitives-iii-easily-creating-domain-primitive-based-data-structures-from-raw-data) - [Domain Primitives I: easily declaring domain primitives](https://svenhuebner-it.com/domain-primitives-i-easily-declaring-domain-primitives/) - [Domain Primitives: what they are and how you can use them to make more secure software](https://freecontent.manning.com/domain-primitives-what-they-are-and-how-you-can-use-them-to-make-more-secure-software/) - [A Cure for Primitive Obsession](https://dev.to/dr_sam_walpole/a-cure-for-primitive-obsession-14l6) - [Functional C#: Immutability](https://enterprisecraftsmanship.com/posts/functional-c-immutability/) - [Functional C#: Primitive obsession](https://enterprisecraftsmanship.com/posts/functional-c-primitive-obsession/) - [Primitive Obsession Code Smell Resolution with example](https://www.thecodebuzz.com/awesome-code-primitive-obsession-code-smell-with-example/) - [Code Smell – Primitive Obsession and Refactoring Recipes](https://blog.ndepend.com/code-smell-primitive-obsession-and-refactoring-recipes/) - [Dealing with primitive obsession](https://lostechies.com/jimmybogard/2007/12/03/dealing-with-primitive-obsession/) - [The type system is a programmer's best friend](https://dusted.codes/the-type-system-is-a-programmers-best-friend) - [Design Smell: Primitive Obsession by Mark Seemann](https://blog.ploeh.dk/2011/05/25/DesignSmellPrimitiveObsession/) - [From Primitive Obsession to Domain Modelling by Mark Seemann](https://blog.ploeh.dk/2015/01/19/from-primitive-obsession-to-domain-modelling/) ## 📺 Videos - [Treating Primitive Obsession with ValueObjects | DDD in .NET](https://www.youtube.com/watch?v=h4uldNA1JUE) ## 🚀 Samples - [shuebner/DomainPrimitives](https://github.com/shuebner/DomainPrimitives) - Base classes and templates for domain primitives in C# ================================================ FILE: docs/domain-driven-design/domain-service.md ================================================ # Domain Service ## 📕 Articles - [Domain-Driven Refactoring: Extracting Domain Services](https://jimmybogard.com/domain-driven-refactoring-extracting-domain-services/) - [Practical DDD in Golang: Domain Service](https://levelup.gitconnected.com/practical-ddd-in-golang-domain-service-4418a1650274) ================================================ FILE: docs/domain-driven-design/domain.md ================================================ # Domain Model ## 📕 Articles - [Always-Valid Domain Model](https://enterprisecraftsmanship.com/posts/always-valid-domain-model/) - [Domain Model Encapsulation and PI with Entity Framework 2.2](http://www.kamilgrzybek.com/design/domain-model-encapsulation-and-pi-with-entity-framework-2-2/) - [Attributes of Clean Domain Model](http://www.kamilgrzybek.com/design/clean-domain-model-attributes/) - [Are CQRS commands part of the domain model?](https://enterprisecraftsmanship.com/2019/01/31/cqrs-commands-part-domain-model/) - [Domain model purity vs. domain model completeness](https://enterprisecraftsmanship.com/posts/domain-model-purity-completeness/) - [Design validations in the domain model layer](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations) - [Seedwork (reusable base classes and interfaces for your domain model)](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/seedwork-domain-model-base-classes-interfaces) - [Implement a microservice domain model with .NET](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/net-core-microservice-domain-model) - [Domain Command Patterns - Validation](https://jimmybogard.com/domain-command-patterns-validation/) - [Domain Command Patterns - Handlers](https://jimmybogard.com/domain-command-patterns-handlers/) - [Attributes of Clean Domain Model](https://www.kamilgrzybek.com/design/clean-domain-model-attributes/) - [Domain Model Encapsulation and PI with Entity Framework 2.2](https://www.kamilgrzybek.com/design/domain-model-encapsulation-and-pi-with-entity-framework-2-2/) - [Strengthening your domain: a primer](https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/) - [Persistence model and domain anemia](https://lostechies.com/blogs/jimmy_bogard/archive/2009/12/03/persistence-model-and-domain-anemia.aspx) - [The Anemic Domain Model Pattern](http://codebetter.com/gregyoung/2009/07/15/the-anemic-domain-model-pattern/) - [Strengthening your domain: Aggregate Construction](https://lostechies.com/jimmybogard/2010/02/24/strengthening-your-domain-aggregate-construction/) - [How to create fully encapsulated Domain Models](https://udidahan.com/2008/02/29/how-to-create-fully-encapsulated-domain-models/) - [Strategic DDD — Distilling the problem domain](https://afedyanin.wordpress.com/2016/05/17/distilling-the-problem-domain/) - [Strategic DDD — Focusing on the Core Domain](https://afedyanin.wordpress.com/2016/05/18/focusing-on-the-core-domain/) - [How to know if your Domain model is properly isolated?](https://enterprisecraftsmanship.com/posts/how-to-know-if-your-domain-model-is-properly-isolated/) - [Domain model isolation](https://enterprisecraftsmanship.com/posts/domain-model-isolation/) - [Strengthening your domain: Encapsulating operations](https://lostechies.com/jimmybogard/2010/03/24/strengthening-your-domain-encapsulating-operations/) - [How to know if your Domain model is properly isolated?](https://enterprisecraftsmanship.com/posts/immutable-architecture/) - [Domain services vs Application services](https://enterprisecraftsmanship.com/posts/domain-vs-application-services/) - [What is domain logic?](https://enterprisecraftsmanship.com/2016/08/25/what-is-domain-logic/) - [Domain model purity and lazy loading](https://enterprisecraftsmanship.com/posts/domain-model-purity-lazy-loading/) - [Change Tracking while doing DDD](https://www.ledjonbehluli.com/posts/change_tracking_ddd/) - [Referencing external libraries from the domain model](https://www.getdrip.com/deliveries/owp2b8gphp8iwhi66vtj?view_in_browser=true&__s=fk6miphh1sspz3nnxtpu) - [Having the domain model separated from the persistence model](https://enterprisecraftsmanship.com/posts/having-the-domain-model-separate-from-the-persistence-model/) - [EF Core 2.1 vs NHibernate 5.1: DDD perspective](https://enterprisecraftsmanship.com/posts/ef-core-vs-nhibernate-ddd-perspective/) - [Link to an aggregate: reference or Id?](https://enterprisecraftsmanship.com/2016/03/08/link-to-an-aggregate-reference-or-id/) - [Entities, Value Objects, Aggregates and Roots](https://lostechies.com/jimmybogard/2008/05/21/entities-value-objects-aggregates-and-roots/) - [Using Factory method instead of Constuctor](https://github.com/kgrzybek/modular-monolith-with-ddd/discussions/214) - [Notes about C# records and Nullable Reference Types](https://event-driven.io/en/notes_about_csharp_records_and_nullable_reference_types/) - [Don’t Create Aggregate Roots](https://udidahan.com/2009/06/29/dont-create-aggregate-roots/) - [Practical DDD in Golang: Entity](https://levelup.gitconnected.com/practical-ddd-in-golang-entity-40d32bdad2a3) - [Avoid Exposing Collections Directly as Properties](https://ardalis.com/avoid-collections-as-properties/?utm_sq=grcpqjyka3) - [Design a No Duplicates Rule in your Domain Model?](https://ardalis.com/design-no-duplicates-rule-in-domain-model/?utm_sq=gz8joz8bw5) - [Domain Modeling Heuristics #1: I See Users Everywhere!](https://www.jamesmichaelhickey.com/i-see-users-everywhere/) - [Entity Best Practices & Conventions - ABP](https://docs.abp.io/en/abp/latest/Best-Practices/Entities) - [Entities - ABP](https://docs.abp.io/en/abp/latest/Entities) - [DDD: Domain Entities](https://mbarkt3sto.hashnode.dev/ddd-domain-entities) ## 📺 Videos - [AVOID Entity Services by Focusing on Capabilities](https://www.youtube.com/watch?v=2gOOstEI4vU) - [ALWAYS Valid Domain Model](https://www.youtube.com/watch?v=JZetlRXdYeI) - [Domain Logic: Where does it go?](https://www.youtube.com/watch?v=PrJIMTZsbDw) - [Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019](https://www.youtube.com/watch?v=2JB1_e5wZmU) ================================================ FILE: docs/domain-driven-design/enums.md ================================================ # Enums ## 📕 Articles - [Smart enums / Type-safe enums in .NET](https://www.meziantou.net/smart-enums-type-safe-enums-in-dotnet.htm) - [Series: Enumeration Classes – DDD and beyond](https://ankitvijay.net/2020/06/12/series-enumeration-classes-ddd-and-beyond/) - [Enumeration classes](https://lostechies.com/jimmybogard/2008/08/12/enumeration-classes/) - [Use enumeration classes instead of enum types](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/enumeration-classes-over-enum-types) - [Introduction to Enumeration Classes](https://ankitvijay.net/2020/05/21/introduction-enumeration-class/) - [Enumeration class and JSON Serialization](https://ankitvijay.net/2020/06/01/enumeration-class-serialization/) - [Reference data as code](https://enterprisecraftsmanship.com/posts/reference-data-as-code/) - [Enum Alternatives in C#](https://ardalis.com/enum-alternatives-in-c/) - [Listing Strongly Typed Enum Options in C#](https://ardalis.com/listing-strongly-typed-enum-options-in-c/) - [Is Enum an Entity or a Value Object?](https://www.getdrip.com/deliveries/247895cxmb7tqv7bsv8w?view_in_browser=true&__s=fk6miphh1sspz3nnxtpu) - [Create enhanced enum's by using enumeration classes instead of enum types](https://www.netizine.com/post/create-enhanced-enums-using-enumeration-classes) ## 📺 Videos - [How to write "smarter" enums in C#](https://www.youtube.com/watch?v=CEZ6cF8eoeg) ## 📦 Libraries - [ardalis/SmartEnum](https://github.com/ardalis/SmartEnum) - A base class for quickly and easily creating strongly typed enum replacements in C#. - [A C# source generator to create an enumeration class from an enum type.](https://github.com/HamedFathi/EnumerationClassGenerator) ================================================ FILE: docs/domain-driven-design/exception-and-validation.md ================================================ # Exceptions & Validation ## 📕 Articles - [Design validations in the domain model layer](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations) - [REST API Data Validation](http://www.kamilgrzybek.com/design/rest-api-data-validation/) - [Domain Model Validation](http://www.kamilgrzybek.com/design/domain-model-validation/) - [Validation in a DDD world](https://lostechies.com/jimmybogard/2009/02/15/validation-in-a-ddd-world/) - [Domain Command Patterns - Validation](https://jimmybogard.com/domain-command-patterns-validation/) - [Validation in Domain-Driven Design (DDD)](http://gorodinski.com/blog/2012/05/19/validation-in-domain-driven-design-ddd/) - [Validation and DDD](https://enterprisecraftsmanship.com/posts/validation-and-ddd/) - [C# code contracts vs input validation](https://enterprisecraftsmanship.com/posts/code-contracts-vs-input-validation/) - [The fallacy of the always-valid entity](https://jeffreypalermo.com/2009/05/the-fallacy-of-the-always-valid-entity/) - [When to validate commands in CQRS?](https://enterprisecraftsmanship.com/2019/02/20/validate-commands-cqrs/) - [Exceptions for flow control in C#](https://enterprisecraftsmanship.com/posts/exceptions-for-flow-control/) - [Fail Fast principle](https://enterprisecraftsmanship.com/posts/fail-fast-principle/) - [Functional C#: Primitive obsession](https://enterprisecraftsmanship.com/posts/functional-c-primitive-obsession/) ⭐ - [Functional C#: Non-nullable reference types](https://enterprisecraftsmanship.com/posts/functional-c-non-nullable-reference-types/) ⭐ - [REST API response codes: 400 vs 500](https://enterprisecraftsmanship.com/posts/rest-api-response-codes-400-vs-500/) - [Functional C# Handling failures, input errors](https://enterprisecraftsmanship.com/posts/functional-c-handling-failures-input-errors/) - [Prefer Custom Exceptions to Framework Exceptions](https://ardalis.com/prefer-custom-exceptions-to-framework-exceptions/) - [CQRS and exception handling](https://enterprisecraftsmanship.com/2019/04/15/cqrs-exception-handling/) - [Error handling: Exception or Result?](https://enterprisecraftsmanship.com/posts/error-handling-exception-or-result/) - [What is an exceptional situation in code?](https://enterprisecraftsmanship.com/posts/what-is-exceptional-situation/) - [Validation and DDD](https://enterprisecraftsmanship.com/2016/09/13/validation-and-ddd/) - [Cool validation with FluentValidation](https://www.code4it.dev/blog/fluentvalidation) - [Validation inside or outside entities?](https://lostechies.com/jimmybogard/2016/04/29/validation-inside-or-outside-entities/) - [Custom Validation in ASP.NET Web API with FluentValidation](https://exceptionnotfound.net/custom-validation-in-asp-net-web-api-with-fluentvalidation/) - [CQRS Validation Pipeline with MediatR and FluentValidation](https://code-maze.com/cqrs-mediatr-fluentvalidation/) - [Exception Handling in ASP.NET Web API - A Guided Tour](https://exceptionnotfound.net/the-asp-net-web-api-exception-handling-pipeline-a-guided-tour/) - [Scaffold Your Clean DDD Web Application - Part 4: Global Exception Handling in ASP.NET Core and Angular](https://blog.jacobsdata.com/2020/11/12/scaffold-your-clean-ddd-web-application-part-4-global-exception-handling-in-aspnet-core-and-angular) - [Advanced error handling techniques](https://enterprisecraftsmanship.com/posts/advanced-error-handling-techniques/) - [Combining ASP.NET Core validation attributes with Value Objects](https://enterprisecraftsmanship.com/posts/combining-asp-net-core-attributes-with-value-objects/) - [Always-Valid Domain Model](https://enterprisecraftsmanship.com/posts/always-valid-domain-model/) - [eShopOnWeb Architecture (3/16) – uses custom exceptions to more explicitly express what has gone wrong](https://davecallan.com/eshoponweb-architecture-3-16-uses-custom-exceptions-to-more-explicitly-express-what-has-gone-wrong/) - [How to validate business logic](https://event-driven.io/en/how_to_validate_business_logic/) ⭐ - [Explicit validation in C# just got simpler!](https://event-driven.io/en/explicit_validation_in_csharp_just_got_simpler/) ⭐ - [Notes about C# records and Nullable Reference Types](https://event-driven.io/en/notes_about_csharp_records_and_nullable_reference_types/) ⭐ - [Exploring Advanced Error Handling Patterns with Event Driven Architecture Part I](https://medium.com/ssense-tech/exploring-advanced-error-handling-patterns-with-event-driven-architecture-part-i-e2f37741d904) - [DDD: Business Logic & Exceptions in Entities](https://mbarkt3sto.hashnode.dev/ddd-business-logic-exceptions-in-entities) ## 📦 Libraries - [ardalis/GuardClauses](https://github.com/ardalis/GuardClauses) - A simple package with guard clause extensions. - [danielwertheim/Ensure.That](https://github.com/danielwertheim/Ensure.That) - Guard clause project for .NET - [proudmonkey/AutoWrapper](https://github.com/proudmonkey/AutoWrapper) - [khellang/Middleware.ProblemDetails](https://github.com/khellang/Middleware/tree/master/src/ProblemDetails) - Various ASP.NET Core middleware - [ardalis/GuardClauses](https://github.com/ardalis/GuardClauses) - A simple package with guard clause extensions. - [JosephWoodward/GlobalExceptionHandlerDotNet](https://github.com/JosephWoodward/GlobalExceptionHandlerDotNet) - Exception handling as a convention in the ASP.NET Core request pipeline. - [safakgur/guard](https://github.com/safakgur/guard) - A high-performance, extensible argument validation library. - [FluentValidation/FluentValidation](https://github.com/FluentValidation/FluentValidation) - A popular .NET validation library for building strongly-typed validation rules. - [mcintyre321/OneOf](https://github.com/mcintyre321/OneOf) - Easy to use F#-like ~discriminated~ unions for C# with exhaustive compile time matching - [ardalis/Result](https://github.com/ardalis/Result) - A result abstraction that can be mapped to HTTP response codes if needed. - [altmann/FluentResults](https://github.com/altmann/FluentResults) - A generalised Result object implementation for .NET/C# ================================================ FILE: docs/domain-driven-design/infrastructure.md ================================================ # Infrastructure ## 📕 Articles - [Design the infrastructure persistence layer](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-design) - [Implement the infrastructure persistence layer with Entity Framework Core](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-implementation-entity-framework-core) - [Use NoSQL databases as a persistence infrastructure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/nosql-database-persistence-infrastructure) - [Scaffold Your Clean DDD Web Application - Part 3: Persistence, Tenancy, and the Data Model](https://blog.jacobsdata.com/2020/09/25/scaffold-your-clean-ddd-web-application-part-3-persistence-tenancy-and-the-data-model) ================================================ FILE: docs/domain-driven-design/integration-event.md ================================================ # Integration Events ## 📕 Articles - [Implementing event-based communication between microservices (integration events)](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/integration-event-based-microservice-communications) - [From Domain to Integration Events](https://www.ledjonbehluli.com/posts/domain_to_integration_event/) - [Internal and external events, or how to design event-driven API](https://event-driven.io/en/internal_external_events/) ================================================ FILE: docs/domain-driven-design/mapping.md ================================================ # Mapping ## 📕 Articles - [Scaffold Your Clean DDD Web Application - Part 5: Domain-Driven Design Entity Mapping Strategies](https://blog.jacobsdata.com/2021/03/22/scaffold-your-clean-ddd-web-application-part-5-domain-driven-design-entity-mapping-strategies) ================================================ FILE: docs/domain-driven-design/orm/ef.md ================================================ # Entity Framework ## 📕 Articles - [Let’s do some DDD with Entity Framework Core 3!](https://www.davidguida.net/lets-do-some-ddd-with-entity-framework-core-3/) - [Shadow and Indexer Properties](https://docs.microsoft.com/en-us/ef/core/modeling/shadow-properties) - [Owned Entity Types](https://docs.microsoft.com/en-us/ef/core/modeling/owned-entities) - [Having the domain model separated from the persistence model](https://enterprisecraftsmanship.com/posts/having-the-domain-model-separate-from-the-persistence-model/) - [EF Core 2.1 vs NHibernate 5.1: DDD perspective](https://enterprisecraftsmanship.com/posts/ef-core-vs-nhibernate-ddd-perspective/) - [Link to an aggregate: reference or Id?](https://enterprisecraftsmanship.com/2016/03/08/link-to-an-aggregate-reference-or-id/) - [Nulls in Value Objects](https://enterprisecraftsmanship.com/posts/nulls-in-value-objects/) - [EF Core 2.1 vs NHibernate 5.1: DDD perspective](https://enterprisecraftsmanship.com/posts/ef-core-vs-nhibernate-ddd-perspective/) - [Using Value Objects with Entity Framework Core](https://levelup.gitconnected.com/using-value-objects-with-entity-framework-core-5cead49dbf9c) - [Supporting Nullable Owned Types in Entity Framework Core](https://levelup.gitconnected.com/how-to-have-nullable-owned-types-in-entity-framework-core-84ed9f112878) - [Representing a collection as a Value Object](https://enterprisecraftsmanship.com/posts/representing-collection-as-value-object/) - [Entity vs Value Object: the ultimate list of differences](https://enterprisecraftsmanship.com/posts/entity-vs-value-object-the-ultimate-list-of-differences/) - [Nesting a Value Object inside an Entity](https://enterprisecraftsmanship.com/posts/nesting-value-object-inside-entity/) - [Implement the infrastructure persistence layer with Entity Framework Core](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-implementation-entity-framework-core) - [Encapsulated Collections in Entity Framework Core](https://ardalis.com/encapsulated-collections-in-entity-framework-core/) - [Entity types with constructors](https://docs.microsoft.com/en-us/ef/core/modeling/constructors) - [Backing Fields](https://docs.microsoft.com/en-us/ef/core/modeling/backing-field?tabs=data-annotations) - [Integrity of Collections in Domain-Driven Design](https://ankitvijay.net/2020/05/10/integrity-of-collections-in-domain-driven-design/) - [Strengthening your domain: Encapsulated collections](https://lostechies.com/jimmybogard/2010/03/10/strengthening-your-domain-encapsulated-collections/) - [Encapsulated Collections in Entity Framework Core](https://ardalis.com/encapsulated-collections-in-entity-framework-core/?utm_sq=gtj0ysb0tw) - [How to have private constructors and private setters when using Entity Framework Core Database first](https://davecallan.com/how-to-have-private-constructors-and-private-setters-when-using-entity-framework-core-database-first/) - [Domain-Driven Design With Entity Framework Core 8](https://thehonestcoder.com/ddd-ef-core-8/) ## 📺 Videos - [How to use EF Core 5 with DDD style projects - part 1](https://www.youtube.com/watch?v=bzI5g6PVM-I) - [How to use EF Core 5 with DDD style projects - part 2](https://www.youtube.com/watch?v=D1hSU-q3GLc) - [How to use EF Core 5 with DDD style projects - part 3](https://www.youtube.com/watch?v=tgDE87Y5t_8) - [Practical Domain-Driven Design with EF Core - Hossam Barakat](https://www.youtube.com/watch?v=yxtsTEhb140) ## 🚀 Samples - [mizrael/EFCoreCommerceDemo](https://github.com/mizrael/EFCoreCommerceDemo) - Small demo showing how to use DDD with Persistence Ignorance using Entity Framework Core 3. - [mizrael/DDD-School](https://github.com/mizrael/DDD-School) - Implementation of the Outbox pattern to improve microservices reliability - [milannankov/EfCoreValueObjects](https://github.com/milannankov/EfCoreValueObjects) - Illustrates support for value object with Entity Framework Core 2.2 - [wmeints/efcore-ddd-demo](https://github.com/wmeints/efcore-ddd-demo) - A demonstration how to use EF Core in a DDD context. - [hossambarakat/Subscriptions-DDD](https://github.com/hossambarakat/Subscriptions-DDD) ================================================ FILE: docs/domain-driven-design/rich-domain-model.md ================================================ # Rich Domain Model ## 📺 Videos - [Rich domain model. What does that even mean? Why is it useful?](https://www.youtube.com/watch?v=al38fiS3KLQ) ================================================ FILE: docs/domain-driven-design/strategic-design-patterns.md ================================================ # Strategic Design Patterns ## 📕 Articles - [Strategic Domain-Driven Design](https://vaadin.com/learn/tutorials/ddd/strategic_domain_driven_design) - [What is Strategic Design ?](https://thedomaindrivendesign.io/what-is-strategic-design/) - [Strategic DDD — Distilling the problem domain](https://afedyanin.wordpress.com/2016/05/17/distilling-the-problem-domain/) - [Strategic DDD — Focusing on the Core Domain](https://afedyanin.wordpress.com/2016/05/18/focusing-on-the-core-domain/) - [Strategic DDD — Bounded Contexts](https://afedyanin.wordpress.com/2016/05/18/bounded-contexts/) - [Legacy Architecture Modernisation With Strategic Domain-Driven Design](https://medium.com/nick-tune-tech-strategy-blog/legacy-architecture-modernisation-with-strategic-domain-driven-design-3e7c05bb383f) - [Strategic Domain-Driven Design](https://dev.to/peholmst/strategic-domain-driven-design-3e87) - [DDD Strategic Patterns: How To Define Bounded Contexts](https://codeburst.io/ddd-strategic-patterns-how-to-define-bounded-contexts-2dc70927976e) ## 🚀 Samples - [ddd-crew/ddd-starter-modelling-process](https://github.com/ddd-crew/ddd-starter-modelling-process) > If you're new to DDD and not sure where to start, this process will guide you step-by-step ================================================ FILE: docs/domain-driven-design/tactical-design-patterns.md ================================================ # Tactical Design Patterns ## 📕 Articles - [Tactical Domain-Driven Design](https://vaadin.com/learn/tutorials/ddd/tactical_domain_driven_design) - [DDD — Tactical Design Patterns](https://afedyanin.wordpress.com/2016/04/27/ddd-tactical-design-patterns/) - [What is Tactical Design ?](https://thedomaindrivendesign.io/what-is-tactical-design/) - [Tactical Domain-Driven Design](https://dev.to/peholmst/tactical-domain-driven-design-17dp) ================================================ FILE: docs/domain-driven-design/value-objects.md ================================================ # Value Objects ## 📕 Articles - [Implement value objects](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/implement-value-objects) - [The hidden value of the Value Object](https://dev.to/rafalpienkowski/the-hidden-value-of-the-value-object-1hga) - [DDD Value Objects With Entity Framework Core](https://www.edgesidesolutions.com/ddd-value-objects-with-entity-framework-core/) - [Value Object: a better implementation](https://enterprisecraftsmanship.com/posts/value-object-better-implementation/) ⭐ - [Entity vs Value Object: the ultimate list of differences](https://enterprisecraftsmanship.com/2016/01/11/entity-vs-value-object-the-ultimate-list-of-differences/) ⭐ - [Nesting a Value Object inside an Entity](https://enterprisecraftsmanship.com/2016/08/09/nesting-a-value-object-inside-an-entity/) ⭐ - [Functional C#: Immutability](https://enterprisecraftsmanship.com/posts/functional-c-immutability/) ⭐ - [Functional C#: Primitive obsession](https://enterprisecraftsmanship.com/posts/functional-c-primitive-obsession/) ⭐ - [Functional C#: Non-nullable reference types](https://enterprisecraftsmanship.com/posts/functional-c-non-nullable-reference-types/) ⭐ - [C# 9 Records as DDD Value Objects](https://enterprisecraftsmanship.com/posts/csharp-records-value-objects/) - [Entities, Value Objects, Aggregates and Roots](https://lostechies.com/jimmybogard/2008/05/21/entities-value-objects-aggregates-and-roots/) - [Listing Strongly Typed Enum Options in C#](https://ardalis.com/listing-strongly-typed-enum-options-in-c/) - [Enum Alternatives in C#](https://ardalis.com/enum-alternatives-in-c/) - [Improved Support for Value Objects with EF Core 2.2](https://www.nankov.com/posts/improved-support-value-objects-ef-core-22) - [Value Object](https://jonatandragon.com/value-object) - [Owned Entity Types](https://docs.microsoft.com/en-us/ef/core/modeling/owned-entities) - [DTO vs Value Object vs POCO](https://enterprisecraftsmanship.com/posts/dto-vs-value-object-vs-poco/) - [Value Objects explained](https://enterprisecraftsmanship.com/posts/value-objects-explained/) ⭐ - [Hierarchy of value objects](https://enterprisecraftsmanship.com/posts/hierarchy-value-objects/) - [Representing a collection as a Value Object](https://enterprisecraftsmanship.com/posts/representing-collection-as-value-object/) ⭐ - [Entity vs Value Object: the ultimate list of differences](https://enterprisecraftsmanship.com/posts/entity-vs-value-object-the-ultimate-list-of-differences/) - [C# 9: Value Objects and Simpler Code](https://visualstudiomagazine.com/articles/2021/04/07/csharp-9.aspx) - [Nulls in Value Objects](https://enterprisecraftsmanship.com/posts/nulls-in-value-objects/) ⭐ - [Refactoring to Value Objects](https://ardalis.com/refactoring-value-objects/) - [Practical DDD in Golang: Value Object](https://levelup.gitconnected.com/practical-ddd-in-golang-value-object-4fc97bcad70) - [Using Value Objects with Entity Framework Core](https://levelup.gitconnected.com/using-value-objects-with-entity-framework-core-5cead49dbf9c) - [3 Different Ways to Implement Value Object in C# 10](https://blog.devgenius.io/3-different-ways-to-implement-value-object-in-csharp-10-d8f43e1fa4dc) - [Working with Value Objects](https://ardalis.com/working-with-value-objects/) - [Value Objects: when to create one?](https://enterprisecraftsmanship.com/posts/value-objects-when-to-create-one/) ⭐ - [Immutable Value Objects are simpler and more useful than you think!](https://event-driven.io/en/immutable_value_objects/) - [DateTime as a Value Object](https://ardalis.com/datetime-as-a-value-object/) - [Value Object - DevIQ](https://deviq.com/domain-driven-design/value-object) - [Support for Value Objects in C#](https://ardalis.com/support-for-value-objects-in-csharp/) - [Modern C# Techniques, Part 2: Value Records](https://blog.stephencleary.com/2022/10/modern-csharp-techniques-2-value-records.html) - [[Best practice] C# 9 Records as DDD Value Objects with EF Core 6](https://dev.to/antoniofalcao/best-practice-c-9-records-as-ddd-value-objects-with-ef-core-6-502p) - [The type system is a programmer's best friend](https://dusted.codes/the-type-system-is-a-programmers-best-friend) - [Design Smell: Primitive Obsession by Mark Seemann](https://blog.ploeh.dk/2011/05/25/DesignSmellPrimitiveObsession/) - [From Primitive Obsession to Domain Modelling by Mark Seemann](https://blog.ploeh.dk/2015/01/19/from-primitive-obsession-to-domain-modelling/) - [eShopOnWeb Architecture (2/16) – uses Value Objects to model immutable domain concepts](https://davecallan.com/eshoponweb-uses-value-objects-to-model-immutable-domain-concepts/) - [A Modern Way to Create Value Objects to Solve Primitive Obsession in .NET](https://antondevtips.com/blog/a-modern-way-to-create-value-objects-to-solve-primitive-obsession-in-net) - [DDD: Value Objects](https://mbarkt3sto.hashnode.dev/ddd-value-objects) ## 📺 Videos - [Treating Primitive Obsession with ValueObjects | DDD in .NET](https://www.youtube.com/watch?v=h4uldNA1JUE) - [The Power of Value - Power Use of Value Objects in Domain Driven Design - Dan Bergh Johnsson](https://www.youtube.com/watch?v=vh-LT1mkIz4) ## 🚀 Samples - [milannankov/EfCoreValueObjects](https://github.com/milannankov/EfCoreValueObjects) - Illustrates support for value object with Entity Framework Core 2.2 - [NimblePros/ValueObjects](https://github.com/NimblePros/ValueObjects) - A collection of Value Object samples for use in DDD projects. ## 📦 Libraries - [Value](https://github.com/tpierrain/Value) - A pico library (or code snippets shed) to help you to easily implement Value Types in your C# projects without making errors nor polluting your domain logic with boiler-plate code. - [ValueOf](https://github.com/mcintyre321/ValueOf) - Deal with Primitive Obsession - define ValueObjects in a single line (of C#). - [WrapperValueObject](https://github.com/martinothamar/WrapperValueObject) - A .NET source generator for creating simple value objects wrapping primitive types. - [Qowaiv](https://github.com/Qowaiv/Qowaiv) - Qowaiv is a Single Value Object library - [jhewlett/ValueObject](https://github.com/jhewlett/ValueObject) - A micro library for easily creating C# classes with value semantics. No need to override Equals, GetHashCode, et all. - [AntonioFalcaoJr/Dotnet6.EFCore6.Record.ValueObjects](https://github.com/AntonioFalcaoJr/Dotnet6.EFCore6.Record.ValueObjects) - This project aims to demonstrate the configuration and use of Records as Value Objects with EF Core 6 - [SteveDunn/Vogen](https://github.com/SteveDunn/Vogen) - A semi-opinionated library which is a source generator and a code analyser. It Source generates Value Objects - [adampaquette/Typely](https://github.com/adampaquette/Typely) - Domain Primitives creation with a fluent Api and built-in validations. Based on a source generator and code analyzer. ================================================ FILE: docs/event-driven-architecture.md ================================================ # Event Driven Architecture # Resources - [Cloud Design Patterns - Microsoft Learn](https://learn.microsoft.com/en-us/azure/architecture/patterns/) - [EDA VISUALS Blog](https://eda-visuals.boyney.io/) - [event-driven.io Blog](event-driven.io/en/) ## 📕 Articles - [Event-driven architecture style](https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/event-driven) - [Event-Driven Architecture](https://herbertograca.com/2017/10/05/event-driven-architecture/) - [Journey to Event Driven – Part 1: Why Event-First Programming Changes Everything](https://www.confluent.io/blog/journey-to-event-driven-part-1-why-event-first-thinking-changes-everything/) - [Journey to Event Driven – Part 2: Programming Models for the Event-Driven Architecture](https://www.confluent.io/blog/journey-to-event-driven-part-2-programming-models-event-driven-architecture/) - [Journey to Event Driven – Part 3: The Affinity Between Events, Streams and Serverless](https://www.confluent.io/blog/journey-to-event-driven-part-3-affinity-between-events-streams-serverless/) - [Journey to Event Driven – Part 4: Four Pillars of Event Streaming Microservices](https://www.confluent.io/blog/journey-to-event-driven-part-4-four-pillars-of-event-streaming-microservices/) - [Event Driven Systems](https://medium.com/omarelgabrys-blog/event-driven-systems-cdbe5a4b3d04) - [Events on the outside, on the inside and at the core](https://chrisrichardson.net/post/microservices/2021/02/21/events-are-the-core.html) - [Implementing event-based communication between microservices (integration events)](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/integration-event-based-microservice-communications) - [Subscribing to events](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/subscribe-events) - [Domain events: design and implementation](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/domain-events-design-implementation) - [DDD and Messaging Architectures](https://verraes.net/2019/05/ddd-msg-arch/) - [Developing a Successful End-to-End Complex Event Processing Strategy](https://blog.equinix.com/blog/2018/03/28/developing-a-successful-end-to-end-complex-event-processing-strategy/) - [Event-Driven Architecture with Apache Kafka for .NET Developers Part 1 - Event Producer](https://thecloudblog.net/post/event-driven-architecture-with-apache-kafka-for-net-developers-part-1-event-producer/) - [Event-Driven Architecture with Apache Kafka for .NET Developers Part 2 - Event Consumer](https://thecloudblog.net/post/event-driven-architecture-with-apache-kafka-for-.net-developers-part-2-event-consumer/) - [Event-Driven Architecture with Apache Kafka for .NET Developers Part 3 - Azure Event Hubs](https://thecloudblog.net/post/event-driven-architecture-with-apache-kafka-for-net-developers-part-3-azure-event-hubs/) - [What do you mean by “Event-Driven”?](https://martinfowler.com/articles/201701-event-driven.html) - [6 Event-Driven Architecture Patterns — Part 1](https://medium.com/wix-engineering/6-event-driven-architecture-patterns-part-1-93758b253f47) - [6 Event Driven Architecture Patterns — Part 2](https://medium.com/wix-engineering/6-event-driven-architecture-patterns-part-2-455cc73b22e1) - [Event Based Architecture: What do you mean by EVENT?](https://codeopinion.com/event-based-architecture-what-do-you-mean-by-event/) - [How to Build an Event-Driven ASP.NET Core Microservice Architecture](https://itnext.io/how-to-build-an-event-driven-asp-net-core-microservice-architecture-e0ef2976f33f) - [The Outbox Pattern in Event-Driven ASP.NET Core Microservice Architectures](https://itnext.io/the-outbox-pattern-in-event-driven-asp-net-core-microservice-architectures-10b8d9923885) - [Building an Event Driven .NET Application: The Fundamentals](https://wrapt.dev/blog/building-an-event-driven-dotnet-application-the-fundamentals) - [Building an Event Driven .NET Application: Setting Up MassTransit and RabbitMQ](https://wrapt.dev/blog/building-an-event-driven-dotnet-application-setting-up-masstransit-and-rabbitmq) - [The Engineers Guide to Event-Driven Architectures: Benefits and Challenges](https://medium.com/swlh/the-engineers-guide-to-event-driven-architectures-benefits-and-challenges-3e96ded8568b) - [The event notification pattern](https://medium.com/geekculture/the-event-notification-pattern-a62d48519107) - [The 6 Things You Need to Know About Event-Driven Architectures](https://medium.com/swlh/the-6-things-you-need-to-know-about-event-driven-architectures-38e11fdcb5a) - [Event-Driven on Azure: Part 1 – Why you should consider an event-driven architecture](https://techcommunity.microsoft.com/t5/apps-on-azure/event-driven-on-azure-part-1-why-you-should-consider-an-event/ba-p/2106983) - [Event-Driven on Azure: Part 2 – Architecting event driven applications](https://techcommunity.microsoft.com/t5/apps-on-azure/event-driven-on-azure-part-2-architecting-event-driven/ba-p/2414007) - [Introduction to Event-Driven Architecture](https://medium.com/microservicegeeks/introduction-to-event-driven-architecture-e94ef442d824) - [A Visual Introduction to Debezium](https://medium.com/event-driven-utopia/a-visual-introduction-to-debezium-32563e23c6b8) - [A Gentle Introduction to Event-driven Change Data Capture](https://medium.com/event-driven-utopia/a-gentle-introduction-to-event-driven-change-data-capture-683297625f9b) - [Event-driven APIs — Understanding the Principles](https://medium.com/event-driven-utopia/event-driven-apis-understanding-the-principles-c3208308d4b2) - [Event-driven APIs in Microservice Architectures](https://github.com/wso2/reference-architecture/blob/master/event-driven-api-architecture.md) - [Event-driven vs REST API interactions](https://apifriends.com/api-management/event-driven-vs-rest-api-interactions/) - [5 Protocols For Event-Driven API Architectures](https://nordicapis.com/5-protocols-for-event-driven-api-architectures/) - [3 Specifications to Consider When Designing Event-Driven Applications](https://medium.com/event-driven-utopia/3-specifications-to-consider-when-designing-event-driven-applications-c12685efd7ad) - [Versatile Events in Event Driven Architecture](https://thecloudblog.net/post/versatile-events-in-event-driven-architecture/) - [Many Faces of Event-driven Architecture](https://medium.com/event-driven-utopia/many-faces-of-event-driven-architecture-660a322ce1ce) - [How to build event-driven projections with Entity Framework](https://event-driven.io/en/how_to_do_events_projections_with_entity_framework/) - [Service-Oriented Architecture vs Event-Driven Architecture](https://www.eventstore.com/blog/service-oriented-architecture-vs-event-driven-architecture) - [Event Driven Architecture — 5 Pitfalls to Avoid](https://medium.com/wix-engineering/event-driven-architecture-5-pitfalls-to-avoid-b3ebf885bdb1) - [Microservices to Async Processing Migration at Scale](https://www.infoq.com/articles/microservices-async-migration/) - [How events can help in making the state-based approach efficient](https://event-driven.io/en/how_events_can_help_on_making_state_based_approach_efficient/) - [Mapping event type by convention](https://event-driven.io/en/how_to_map_event_type_by_convention/) - [Understanding Coupling with Event-Driven Architecture](https://medium.com/ssense-tech/understanding-coupling-with-event-driven-architecture-a6b3561b7227) - [DOCUMENT YOUR EVENT-DRIVEN ARCHITECTURE](https://eda-visuals.boyney.io/designs/document-event-driven-architectures) - [Error Handling in Event-Driven Systems](https://levelup.gitconnected.com/error-handling-in-event-driven-systems-1f0a7ef2cfb7) - [Internal and external events, or how to design event-driven API](https://event-driven.io/en/internal_external_events/) - [Event-Driven Architecture: What You Need to Know](https://encore.dev/blog/event-driven-architecture) ⭐ - [Event modelling anti-patterns explained](https://event-driven.io/en/anti-patterns/) - [Event-driven architecture on the modern stack of Java technologies](https://romankudryashov.com/blog/2024/07/event-driven-architecture) - [Simple patterns for events schema versioning](https://event-driven.io/en/simple_events_versioning_patterns/) ⭐ - [Handling Events Coming in an Unknown Order](https://event-driven.io/en/strict_ordering_in_event_handling/) ## 📺 Videos - [Event-Driven Architecture | EDA | Software Architectural Patterns](https://www.youtube.com/watch?v=gIL8rW_eyww&t=0s) - [Events on the outside, on the inside and at the core](https://www.youtube.com/watch?v=rP-InttAbVY) - [GOTO 2017 • The Many Meanings of Event-Driven Architecture • Martin Fowler](https://www.youtube.com/watch?v=STKCRSUsyP0) - [Event Driven Collaboration](https://skillsmatter.com/skillscasts/13645-event-driven-colloboration) - [Event-Driven Architecture | Event-Driven VS Request-Driven Architecture, When Not To Use Events](https://www.youtube.com/watch?v=U-U3bpljZd0) - [What are the benefits of event-driven architecture? | Example of Stripe Checkout payment fulfillment](https://www.youtube.com/watch?v=9GuAR5gltcE) - [GOTO 2020 • The Power of Event-Driven Systems without Burning your Hands or Budgets • Allard Buijze](https://www.youtube.com/watch?v=Fso2OyguRuQ) - [Core Decisions in Event-Driven Architecture - Duana Stanley](https://www.youtube.com/watch?v=SKXS2h3MdPM) - [Creating event-driven microservices: the why, how and what by Andrew Schofield](https://www.youtube.com/watch?v=ksRCq0BJef8) - [What's an Event Driven System?](https://www.youtube.com/watch?v=rJHTK2TfZ1I) - [Event Based Architecture: What do you mean by EVENT?](https://www.youtube.com/watch?v=qKD2YUTJAXM) - [Event Driven Architecture for Real-Time Web](https://www.youtube.com/watch?v=Tu1GEIhkIqU) - [What is Event Driven Architecture? (EDA - part 1)](https://www.youtube.com/watch?v=DQ5Cbt8DQbM) - [The Saga Pattern in Microservices (EDA - part 2)](https://www.youtube.com/watch?v=C0rGwyJkDTU) - [What is Event Driven Architecture (EDA)?](https://www.youtube.com/watch?v=o2HJCGcYwoU) - [What is Event-driven Change Data Capture Process?](https://www.youtube.com/watch?v=-irkDCmHhKk) - [Event Driven Collaboration [eng] / Ian Cooper](https://www.youtube.com/watch?v=ztRwZ2FySds) - [Gotchas! in Event Driven Architecture - What you need to be aware of](https://www.youtube.com/watch?v=NzEaI1UtiGk) - [Light and Dark Side of the Event-Driven Design • Oskar Dudycz • Devoxx Poland 2021](https://www.youtube.com/watch?v=0pYmuk0-N_4) - [How to DESIGN EVENT-DRIVEN applications! The best method for production applications!](https://www.youtube.com/watch?v=LaxH8GS8l3Q) - [Building a Webhooks System](https://www.youtube.com/watch?v=NuHC5uwbFAc) - [The Dark Side of Events](https://www.youtube.com/watch?v=URYPpY3SgS8) - [Event Driven Architecture in the Real World! 4 Practical Examples](https://www.youtube.com/watch?v=dhdLxW0vDro) - [Event Driven Architecture - Understanding the Basics](https://www.youtube.com/watch?v=LHgCA3XVNkw) - [Event-driven integration #1 - Intro to the transactional outbox pattern [ASPF02O|E040]](https://www.youtube.com/watch?v=suKSJ5DvynA) - [Event-driven integration #2 - Inferring events from EF Core changes [ASPF02O|E041]](https://www.youtube.com/watch?v=rJDZiFJGP90) - [Event-driven integration #3 - Storing events in the outbox table [ASPF02O|E042]](https://www.youtube.com/watch?v=G187r-rzzkk) - [Event-driven integration #4 - Outbox publisher (feat. IHostedService & Channels) [ASPF02O|E043]](https://www.youtube.com/watch?v=xnn6AnYyC5g) - [Event-driven integration #5 - Quick intro to Apache Kafka [ASPF02O|E044]](https://www.youtube.com/watch?v=tUzCxZdKEr4) - [Event-driven integration #6 - Publishing events (feat. Apache Kafka) [ASPF02O|E045]](https://www.youtube.com/watch?v=T2Dy7cH486c) - [Wix.com - 5 Event Driven Architecture Pitfalls!](https://www.youtube.com/watch?v=xfNzGdrxf5w) ## 📚 Books - [Designing Event-Driven Systems](https://www.confluent.io/designing-event-driven-systems/) - [Building Event-Driven Microservices: Leveraging Organizational Data at Scale](https://www.amazon.com/Building-Event-Driven-Microservices-Leveraging-Organizational/dp/1492057894) - [Flow Architectures: The Future of Streaming and Event-Driven Integration](https://www.amazon.com/Flow-Architectures-Streaming-Event-Driven-Integration/dp/1492075892/) - [Practical Event-Driven Microservices Architecture: Building Sustainable and Highly Scalable Event-Driven Microservices](https://www.amazon.com/Practical-Event-Driven-Microservices-Architecture-Sustainable/dp/1484274679/) ## 🚀 Samples - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - The main objective of this cloud-native project is to represent the state of the art of a distributed, reliable, and highly scalable system by interpreting the most relevant principles of Reactive Domain Driven Design. - [rkudryashov/event-driven-architecture](https://github.com/rkudryashov/event-driven-architecture) Event-driven architecture (Transactional outbox, Inbox, and Saga patterns) on the modern stack of Java technologies. ================================================ FILE: docs/event-sourcing.md ================================================ # Event Sourcing ## 📘 Resources - [Event Store Blog](https://www.eventstore.com/blog/tag/event-sourcing) - [Alexey Zimarev Blog](https://zimarev.com//tags/event-sourcing/) - [Code Opinion Blog](https://codeopinion.com/category/event-sourcing/) - [Versioning in an Event Sourced System - Gregory Young](https://leanpub.com/esversioning/read) - [EventSourcing .NET](https://github.com/oskardudycz/EventSourcing.NetCore#eventsourcing-net) ## 📕 Articles - [Event Sourcing](https://martinfowler.com/eaaDev/EventSourcing.html) - [Event Sourcing and CQRS in C#](http://www.andreavallotti.tech/en/2018/01/event-sourcing-and-cqrs-in-c/) - [Event Sourcing: Awesome, powerful & different](https://www.erikheemskerk.nl/event-sourcing-awesome-powerful-different/) - [Event Sourcing: Eventual Consistency and Responding to Events](https://www.erikheemskerk.nl/event-sourcing-eventual-consistency-responding-to-events/) - [vent Sourcing: CQRS and querying using read models](https://www.erikheemskerk.nl/event-sourcing-cqrs-querying-read-models/) - [About event sourcing](https://eventuate.io/whyeventsourcing.html) - [Event Sourcing pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/event-sourcing) - [Event Sourcing with Azure SQL and Entity Framework Core](https://daniel-krzyczkowski.github.io/Event-Sourcing-With-Azure-SQL-And-Entity-Framework-Core/) - [Projections in Event Sourcing: Build ANY model you want!](https://codeopinion.com/projections-in-event-sourcing-build-any-model-you-want) - [Reactive in practice, Unit 5: Event sourcing](https://developer.ibm.com/tutorials/reactive-in-practice-5/) - [Reactive in practice, Unit 7: CQRS, Part 2 – ReadSideProcessor for queries and views](https://developer.ibm.com/tutorials/reactive-in-practice-7/) - [EVENT SOURCING MICROSERVICES PATTERN](https://akfpartners.com/growth-blog/event-sourcing-microservices-pattern) - [Event Based Architecture: What do you mean by EVENT?](https://codeopinion.com/event-based-architecture-what-do-you-mean-by-event/) - [Beginner's Guide to Event Sourcing | Event Store](https://www.kurrent.io/event-sourcing) * - [Snapshots in Event Sourcing | Event Store](https://www.kurrent.io/blog/snapshots-in-event-sourcing) * - [CQRS(Command-Query Responsibility Segregation) | Event Store](https://www.eventstore.com/cqrs-pattern) * - [Eventsourcing Patterns: Forgettable Payloads](https://verraes.net/2019/05/eventsourcing-patterns-forgettable-payloads/) - [Counterexamples regarding consistency in event sourced solutions (Part 1) | Event Store](https://www.eventstore.com/blog/counterexamples-regarding-consistency-in-event-sourced-solutions-part-1) - [Counterexamples regarding consistency in event sourced solutions (Part 2) | Event Store](https://www.eventstore.com/blog/counterexamples-regarding-consistency-in-event-sourced-solutions-part-2) - [Counterexamples regarding consistency in event sourced solutions (Part 3) | Event Store](https://www.eventstore.com/blog/counterexamples-regarding-consistency-in-event-sourced-solutions-part-3) - [Event Sourcing: Events Evolution, Versioning, and Migration](https://valerii-udodov.com/posts/event-sourcing/events-versioning/) - [Event-sourcing at Nordstrom: Part 1](https://medium.com/tech-at-nordstrom/adventures-in-event-sourced-architecture-part-1-cc21d06187c7) - [Event-sourcing at Nordstrom: Part 2](https://medium.com/tech-at-nordstrom/event-sourcing-at-nordstrom-part-2-f64c416d1885) - [Live projections for read models with Event Sourcing and CQRS | Event Store](https://www.kurrent.io/blog/live-projections-for-read-models-with-event-sourcing-and-cqrs) - [Event Streaming is not Event Sourcing!](https://event-driven.io/en/event_streaming_is_not_event_sourcing/) - [Overselling Event Sourcing - Alexey Zimarev](https://zimarev.com/overselling-event-sourcing-644a1c992e1f) ⭐ - [MICROSERVICES .NET CORE WITH EXAMPLE — Part 4](https://medium.com/@bingeek/microservices-net-core-with-example-part-4-d652e6f16796) - [MICROSERVICES .NET CORE WITH EXAMPLE — Part 5](https://medium.com/@bingeek/microservices-net-core-with-example-part-5-f3ae18d5edee) - [Why a bank account is not the best example of Event Sourcing?](https://event-driven.io/en/bank_account_event_sourcing/) - [Real-World CQRS/ES with ASP.NET and Redis Part 1 - Overview](https://exceptionnotfound.net/real-world-cqrs-es-with-asp-net-and-redis-part-1-overview/) - [Real-World CQRS/ES with ASP.NET and Redis Part 2 - The Write Model](https://exceptionnotfound.net/real-world-cqrs-es-with-asp-net-and-redis-part-2-the-write-model/) - [Real-World CQRS/ES with ASP.NET and Redis Part 3 - The Read Model](https://exceptionnotfound.net/real-world-cqrs-es-with-asp-net-and-redis-part-3-the-read-model/) - [What is Event Sourcing?](https://www.ahmetkucukoglu.com/en/what-is-event-sourcing/) - [Event Sourcing with ASP.NET Core – 01 Store](https://www.ahmetkucukoglu.com/en/event-sourcing-with-asp-net-core-01-store/) - [Event Sourcing with ASP.NET Core – 02 Messaging](https://www.ahmetkucukoglu.com/en/event-sourcing-with-aspnet-core-02-messaging/) - [Event Sourcing applied – the application service](https://lostechies.com/gabrielschenker/2015/06/13/event-sourcing-applied-the-application-service/) - [Event Sourcing applied – the Aggregate](https://lostechies.com/gabrielschenker/2015/06/06/event-sourcing-applied-the-aggregate/) - [Event sourcing revisited](https://lostechies.com/gabrielschenker/2015/05/26/event-sourcing-revisited/) - [Reactive in practice, Unit 5: Event sourcing](https://developer.ibm.com/tutorials/reactive-in-practice-5/) - [Event Sourcing Examined Part 1 of 3](https://dasith.me/2016/12/02/event-sourcing-examined-part-1-of-3/) - [Event Sourcing Examined Part 2 Of 3](https://dasith.me/2016/12/31/event-sourcing-examined-part-2-of-3/) - [Event Sourcing Examined Part 3 Of 3](https://dasith.me/2017/08/02/event-sourcing-examined-part-3-of-3/) - [Event immutability and dealing with change](https://www.eventstore.com/blog/event-immutability-and-dealing-with-change) - [How Event Sourcing makes for a better debugging experience for developers](https://www.eventstore.com/blog/how-event-sourcing-makes-for-a-better-debugging-experience-for-developers) - [Projections in Event Sourcing](https://web.archive.org/web/20230128040244/https://zimarev.com/blog/event-sourcing/projections/) ⭐ - [Entities as event streams](https://zimarev.com/blog/event-sourcing/entities-as-streams/#using-events-to-mutate-state) - [Event Sourcing basics](https://web.archive.org/web/20230128024544/https://zimarev.com/blog/event-sourcing/introduction/) ⭐ - [Event Sourcing and CQRS](https://www.kurrent.io/blog/event-sourcing-and-cqrs) ⭐ - [Entities as event streams](https://web.archive.org/web/20230128024544/https://zimarev.com/blog/event-sourcing/entities-as-streams/) ⭐ - [Reporting models and Event Sourcing](https://web.archive.org/web/20230128024544/https://zimarev.com/blog/event-sourcing/changes-in-event-sourced-systems/) ⭐ - [Event Sourcing and Microservices](https://web.archive.org/web/20230128024544/https://zimarev.com/blog/event-sourcing/microservices/) ⭐ - [Event immutability and dealing with change](https://www.eventstore.com/blog/event-immutability-and-dealing-with-change?utm_campaign=GWP%20-%20event%20immutability&utm_content=168948136&utm_medium=social&utm_source=linkedin&hss_channel=lcp-3011811) - [How to get the current entity state from events?](https://event-driven.io/en/how_to_get_the_current_entity_state_in_event_sourcing/) - [When not to use Event Sourcing?](https://event-driven.io/en/when_not_to_use_event_sourcing/) - [Revolution now!](https://event-driven.io/en/revolution_now/) - [How to (not) do the events versioning?](https://event-driven.io/en/how_to_do_event_versioning/) - [What if I told you that Relational Databases are in fact Event Stores?](https://event-driven.io/en/relational_databases_are_event_stores/) - [How to create projections of events for nested object structures?](https://event-driven.io/en/how_to_create_projections_of_events_for_nested_object_structures/) - [How to scale projections in the event-driven systems?](https://event-driven.io/en/how_to_scale_projections_in_the_event_driven_systems/) - [Anti-patterns in event modelling - Property Sourcing](https://event-driven.io/en/property-sourcing/) - [Anti-patterns in event modelling - State Obsession](https://event-driven.io/en/state-obsession/) - [How to build event-driven projections with Entity Framework](https://event-driven.io/en/how_to_do_events_projections_with_entity_framework/) - [Let's talk about positions in event stores](https://event-driven.io/en/lets_talk_about_positions_in_event_stores/) - [Simple patterns for events schema versioning](https://event-driven.io/en/simple_events_versioning_patterns/) ⭐ - [How to (not) do the events versioning?](https://event-driven.io/en/how_to_do_event_versioning/) - [How to do snapshots in Marten?](https://event-driven.io/en/how_to_do_snapshots_in_Marten/) - [Keep your streams short! Temporal modeling for fast reads and optimal data retention](https://www.eventstore.com/blog/keep-your-streams-short-temporal-modelling-for-fast-reads-and-optimal-data-retention) - [Integrating Marten with other systems](https://event-driven.io/en/integrating_Marten/) - [Using strongly-typed identifiers with Marten](https://event-driven.io/en/using_strongly_typed_ids_with_marten/) - [A simple trick for idempotency handling in the Elastic Search read model](https://event-driven.io/en/simple_trick_for_idempotency_handling_in_elastic_search_readm_model/) - [Getting Started with CQRS – Part 1](https://www.red-gate.com/simple-talk/development/dotnet-development/getting-started-with-cqrs-part-1/) - [Getting Started with CQRS – Part 2](https://www.red-gate.com/simple-talk/development/dotnet-development/getting-started-with-cqrs-part-2/) - [Getting Started with CQRS – Part 3](https://www.red-gate.com/simple-talk/development/dotnet-development/getting-started-with-cqrs-part-3/) - [Dealing with Eventual Consistency and Idempotency in MongoDB projections](https://event-driven.io/en/dealing_with_eventual_consistency_and_idempotency_in_mongodb_projections/) - [Global event stream](https://zimarev.com/blog/event-sourcing/all-stream/) - [Live projections for read models with Event Sourcing and CQRS](https://www.eventstore.com/blog/live-projections-for-read-models-with-event-sourcing-and-cqrs) - [DDD, CQRS and Event Sourcing in .NET Core with Weapsy.Mediator](https://www.linkedin.com/pulse/ddd-cqrs-event-sourcing-net-core-weapsymediator-luca-briguglia/) - [Building an Event Storage](https://cqrs.wordpress.com/documents/building-event-storage/) - [Event Sourcing: 5 things to consider when approaching it](https://www.davidguida.net/event-sourcing-things-to-consider) - [Event Sourcing pattern for microservices in .Net Core](https://chaitanyasuvarna.wordpress.com/2021/05/30/event-sourcing-pattern-in-net-core/) - [Snapshots in Event Sourcing for Rehydrating Aggregates](https://codeopinion.com/snapshots-in-event-sourcing-for-rehydrating-aggregates/) - [Scalable Microservices with Event Sourcing and Redis](https://medium.com/lcom-techblog/scalable-microservices-with-event-sourcing-and-redis-6aa245574db0) - [CQRS & Event Sourcing Code Walk-Through](https://codeopinion.com/cqrs-event-sourcing-code-walk-through/) - [Event Sourced Aggregate Design: Focus on Business Logic](https://codeopinion.com/event-sourced-aggregate-design-focus-on-business-logic/) - [Testing your Domain when Event Sourcing](https://codeopinion.com/testing-your-domain-when-event-sourcing/) - [Projections in Event Sourcing: Build ANY model you want!](https://codeopinion.com/projections-in-event-sourcing-build-any-model-you-want/?utm_source=rss&utm_medium=rss&utm_campaign=projections-in-event-sourcing-build-any-model-you-want) - [Event Sourcing Example & Explained in plain English](https://codeopinion.com/event-sourcing-example-explained-in-plain-english/?utm_source=feedly&utm_medium=rss&utm_campaign=event-sourcing-example-explained-in-plain-english) - [Event Sourcing: Projections with Liquid Projections](https://codeopinion.com/event-sourcing-projections-with-liquid-projections/) - [Event Sourcing with SQL Stream Store](https://codeopinion.com/event-sourcing-with-sql-stream-store/) - [Event Stream as a Message Queue](https://codeopinion.com/event-stream-message-queue/) - [Event Store Persistent Subscriptions](https://codeopinion.com/event-store-persistent-subscriptions/) - [Event Store Persistent Subscriptions Demo](https://codeopinion.com/event-store-persistent-subscriptions-demo/) - [Persistent subscription](https://developers.eventstore.com/server/v21.10/persistent-subscriptions.html) - [Event Store Subscribe to changes](https://developers.eventstore.com/clients/dotnet/5.0/subscriptions.html) - [Migration to gRPC client](https://developers.eventstore.com/clients/dotnet/5.0/migration-to-gRPC.html#update-the-target-framework) - [Event Schema Versioning](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/EventsVersioning) - [Event Sourcing: Snapshotting](https://domaincentric.net/blog/event-sourcing-snapshotting) - [Convince your CTO to use Event Sourcing](https://www.eventstore.com/blog/convincing-your-cto) - [The Right Way - Event Sourcing done right](https://eventuous.dev/docs/prologue/the-right-way/) - [Event Sourcing - Kamil](https://github.com/kgrzybek/modular-monolith-with-ddd#315-event-sourcing) - [What they don’t tell you about event sourcing](https://medium.com/@hugo.oliveira.rocha/what-they-dont-tell-you-about-event-sourcing-6afc23c69e9a) - [Reactive Event Sourcing in Java, Part 1: Domain](https://softwaremill.com/reactive-event-sourcing-in-java-part-1-domain/) - [Reactive Event Sourcing in Java, Part 2: Actor Model](https://softwaremill.com/reactive-event-sourcing-in-java-part-2-actor-model/) - [Reactive Event Sourcing in Java, Part 3: Service](https://softwaremill.com/reactive-event-sourcing-in-java-part-3-service/) - [Reactive Event Sourcing in Java, Part 4: Controller](https://softwaremill.com/reactive-event-sourcing-in-java-part-4-controller/) - [Implementing event sourcing using a relational database](https://softwaremill.com/implementing-event-sourcing-using-a-relational-database/) - [Read models in event-sourced systems](https://alexey-zimarev.medium.com/read-models-in-event-sourced-systems-489342181233) - [EventStoreDB Vs Kafka](https://domaincentric.net/blog/eventstoredb-vs-kafka) - [Event Sourcing: Why Kafka is not suitable as an Event Store](https://medium.com/@TonyBologni/event-sourcing-why-kafka-is-not-suitable-as-an-event-store-796e5d9ab63c) - [Event Versioning with Marten](https://event-driven.io/en/event_versioning_with_marten/) - [Slim your aggregates with Event Sourcing!](https://event-driven.io/en/slim_your_entities_with_event_sourcing/) - [Functional Event Sourcing Decider](https://thinkbeforecoding.com/post/2021/12/17/functional-event-sourcing-decider) - [A Vision for Low Ceremony CQRS with Event Sourcing](https://jeremydmiller.com/2022/06/15/a-vision-for-low-ceremony-cqrs-with-event-sourcing/) - [How to effectively compose your business logic](https://event-driven.io/en/how_to_effectively_compose_your_business_logic/) - [CQRS + Event Sourcing – Step by Step](https://danielwhittaker.me/2020/02/20/cqrs-step-step-guide-flow-typical-application/) - [Testing business logic in Event Sourcing, and beyond!](https://event-driven.io/en/testing_event_sourcing/) - [Testing an Event Sourced Aggregate Root](https://buildplease.com/pages/fpc-13/) - [An Executable Specification](https://buildplease.com/pages/fpc-14/) - [Event Sourcing explained](https://itnext.io/event-sourcing-explained-b19ccaa93ae4) ⭐ - [Essential features of an Event Store for Event Sourcing](https://itnext.io/essential-features-of-an-event-store-for-event-sourcing-13e61ca4d066) - [Event Sourcing Part I: Understanding what it is, core components, and common misconceptions](https://medium.com/ssense-tech/event-sourcing-part-i-understanding-what-it-is-core-components-and-common-misconceptions-5dec65f6d61) - [Event Sourcing Part II: Implementing an end-to-end solution](https://medium.com/ssense-tech/event-sourcing-part-ii-implementing-an-end-to-end-solution-68b7dbefe89) - [Guide to Projections and Read Models in Event Driven Architecture](https://event-driven.io/en/projections_and_read_models_in_event_driven_architecture/) ⭐ - [Event-driven projections in Marten explained](https://event-driven.io/en/projections_in_marten_explained/) - [Projecting Marten events to Elasticsearch](https://event-driven.io/en/projecting_from_marten_to_elasticsearch/) - [Ensuring uniqueness in Marten event store](https://event-driven.io/en/unique_constraint_in_marten_event_store/) - [Event stores are key-value databases, and why that matters](https://event-driven.io/en/event_stores_are_key_value_stores/) - [How to scale out Marten](https://event-driven.io/en/scaling_out_marten/) - [Implementing Closing the Books pattern](https://event-driven.io/en/closing_the_books_in_practice/) - [Explicit events serialisation in Event Sourcing](https://event-driven.io/en/explicit_events_serialisation_in_event_sourcing/) - [Marten, Metrics, and Open Telemetry Support](https://jeremydmiller.com/2024/04/30/marten-metrics-and-open-telemetry-support/) - [Marten, PostgreSQL, and .NET Aspire walk into a bar](https://jeremydmiller.com/2024/05/01/marten-postgresql-and-net-aspire-walk-into-a-bar/) - [Why you should batch message processing and how to do it with .NET AsyncEnumerable](https://event-driven.io/en/batching_async_enumerable/) - [Persistent vs catch-up, EventStoreDB subscriptions in action](https://event-driven.io/en/persistent_vs_catch_up_eventstoredb_subscriptions_in_action/) - [Filtering EventStoreDB subscriptions by event types](https://event-driven.io/en/filtering_eventstoredb_subscriptions_by_event_types/) - [Using event metadata in event-driven projections](https://event-driven.io/en/projections_and_event_metadata/) - [Event sourcing, CQRS, stream processing and Apache Kafka: What’s the connection?](https://www.confluent.io/blog/event-sourcing-cqrs-stream-processing-apache-kafka-whats-connection/) - [Event Sourcing: Why Kafka is not suitable as an Event Store](https://itnext.io/event-sourcing-why-kafka-is-not-suitable-as-an-event-store-796e5d9ab63c) ## 📺 Videos - [Event Sourcing Playlist - CodeOpinion](https://www.youtube.com/playlist?list=PLThyvG1mlMzkRKJnhzvxtSAbY8oxENLUQ) - [Event Sourcing Example & Explained in plain English](https://www.youtube.com/watch?v=AUj4M-st3ic) - [Projections in Event Sourcing: Build ANY model you want!](https://www.youtube.com/watch?v=bTRjO6JK4Ws) - [Event Sourcing: Rehydrating Aggregates with Snapshots](https://www.youtube.com/watch?v=eAIkomEid1Y) - [Event Sourcing with Azure SQL and Entity Framework Core](https://www.youtube.com/watch?v=-BhDW3GeSqg) - [What's an Event Driven System?](https://www.youtube.com/watch?v=rJHTK2TfZ1I) - [eventstore webinars](https://www.eventstore.com/webinars) - [Testing Aggregate with Event Sourcing made SIMPLE](https://www.youtube.com/watch?v=rGlNhYOqKZk) - [A practical introduction to DDD, CQRS & Event Sourcing - Dennis Doomen - KanDDDinsky 2019](https://www.youtube.com/watch?v=r26BuahD8aM) - [Event Sourcing & CQRS in C# - The Aggregate Root](https://www.youtube.com/watch?v=LAU2gFtPC_0) - [Event Sourcing & CQRS in C#: The Repository](https://www.youtube.com/watch?v=ZEHgs2qy2MQ) - [Event Sourcing & CQRS in C# - The Event Store](https://www.youtube.com/watch?v=dfzsAGUAAYQ) - [Practical introduction to Event Sourcing with EventStoreDB](https://www.youtube.com/watch?v=rqYPVzjoxqI - [CQRS - Event Sourcing || Deep Dive on Building Event Driven Systems || Part-1 ||](https://www.youtube.com/watch?v=3TwLEoLtpw0) - [CQRS - Event Sourcing || Deep Dive on Building Event Driven Systems || Part -2 ||](https://www.youtube.com/watch?v=MKdHSKeMpk0) - [Event Sourcing with Azure SQL and Entity Framework Core](https://www.youtube.com/watch?v=-BhDW3GeSqg) - [Event Sourcing & CQRS | Stock Exchange Microservices Architecture | System Design Primer](https://www.youtube.com/watch?v=E-7TBZxmkXE) - [Don't Let the Internet Dupe You, that's NOT Event Sourcing](https://www.youtube.com/watch?v=Y7ca1--EKsg) - [Never Lose Data Again - Event Sourcing to the Rescue! with Oskar Dudycz - December 1st 2021](https://www.youtube.com/watch?v=fDC465jJoDk) - [Practical Introduction to Event Sourcing with EventStoreDB by Oskar Dudycz](https://www.youtube.com/watch?v=ArcypYS5XBQ) - [Event Store Webinar: Migrating from TCP to gRPC](https://www.youtube.com/watch?v=-4_KTfVkjlQ) - [Practical Event Sourcing with Marten - Oskar Dudycz, .NET](https://www.youtube.com/watch?v=L_ized5xwww) - [Sander MOLENKAMP: Practical CQRS and Event Sourcing on Azure @ Update Conference Prague 18](https://www.youtube.com/watch?v=3XcB-5CrRe8) - [How to build an event store using CosmosDB](https://www.youtube.com/watch?v=UejwRlmV6E4) - [The Dark Side of Events](https://www.youtube.com/watch?v=URYPpY3SgS8) - [How an EventStore actually works - by Gregory Young](https://www.youtube.com/watch?v=YUjO1wM0PZM) - [Practical Event-Sourcing with C# and EventStore with Alexey Zimareff](https://www.youtube.com/watch?v=0RGuoRRHWf8) - [Eventuous: Event Sourcing with .NET, Alexey Zimarev](https://www.youtube.com/watch?v=IbnXdERLDjk) - [Introduction to Event Sourcing](https://learn.eventstore.com/webinar-recording-introduction-to-event-sourcing) - [Q&A - Event Sourcing, CQRS, and DDD](https://learn.eventstore.com/webinar-recording-qa-event-sourcing-cqrs-and-ddd) - [Eventual Consistency is a UX Nightmare](https://www.youtube.com/watch?v=wEUTMuRSZT0) - [Eventuous Event Sourcing with NET - Alexey Zimarev - NDC Oslo 2021](https://www.youtube.com/watch?v=4j7PyYT2GMU) - [Event sourcing meetup with Alexey Zimarev and Greg Young](https://www.youtube.com/watch?v=DDefPUCB9ao) - [PostgreSQL as NoSql with Marten by Pavlo Tsybulivskyi](https://www.youtube.com/watch?v=gZX6nrudTL0) - [Understanding Event Sourcing Basics [.NET C#]](https://www.youtube.com/watch?v=EGYMNsI_Opo) - [Understanding When to Snapshot [.NET C#]](https://www.youtube.com/watch?v=Y0EshPK32cg) - [Complex Projections in Event Sourcing [.NET C#]](https://www.youtube.com/watch?v=kv87iBsEP44) - [Snapshotter for Asynchronous Projections [.NET C#]](https://www.youtube.com/watch?v=ZRr3jOXZGJg) - [Event Sourcing do's and don'ts](https://www.youtube.com/watch?v=SYsiIxJ-Nfw) - [Let's build the worst Event Sourcing system! - Oskar Dudycz - EventSourcing Live 2021](https://www.youtube.com/watch?v=Lu-skMQ-vAw) - [Snapshotter Service with distributed locks [.NET C#]](https://www.youtube.com/watch?v=NriFMN2UtZs) - [Introduction to Event Sourcing in TypeScript and NodeJS with EventStoreDB](https://www.youtube.com/watch?v=5pc7abhle_Q) - [About Event Sourcing with Oskar Dudycz | Software as we know IT](https://www.youtube.com/watch?v=MARo6153qF8) - [Practical introduction to Event Sourcing with Spring Boot and EventStoreDB](https://www.youtube.com/watch?v=LaUSPtwFLSg) - [Real-time subscription - Alexey Zimarev](https://medium.com/eventuous/real-time-subscription-3d5725d69887) - [Pragmatic Event Sourcing in .NET With Marten - JetBrainsTV](https://www.youtube.com/watch?v=Lc2zV8KA16A) - [.NET DC August: Event Sourcing and CQRS with Marten](https://www.youtube.com/watch?v=XaztVpahD1k) - [DDD as Low-Code](https://www.youtube.com/watch?v=yohu6qx8-dU) - [Introduction to Event Sourcing by Alexey Zimarev](https://www.youtube.com/watch?v=VeZZ2UZMDYo) - [The power of transient state in Event Sourcing](https://www.youtube.com/watch?v=XoWEQ_39Mcg) - [Let's build event store in one hour! - Oskar Dudycz - NDC Oslo 2022](https://www.youtube.com/watch?v=gaoZdtQSOTo) - [Event Sourcing in 1 Hour with Marten in .NET](https://www.youtube.com/watch?v=yWpuUHXLhYg) - [Event-driven revolution, from CRUD to Event Sourcing in practice - Oskar Dudycz - Devoxx For Ukraine](https://www.youtube.com/watch?v=V5_MMtfPpKs) - [How to model event-sourced systems efficiently - Oskar Dudycz - DDD Europe 2022](https://www.youtube.com/watch?v=gG6DGmYKk4I) - [Practical Introduction to Event Sourcing](https://www.youtube.com/watch?v=O3qbCuHvcPk) - [Student Enrollment with EventStoreDB (an introduction to Event Sourcing)](https://www.youtube.com/watch?v=SB55-lgK_8I) - [Getting Started with Event Sourcing in .NET](https://www.youtube.com/watch?v=n_o-xuuVtmw) - [Let's build the worst Event Sourcing system! - Oskar Dudycz - EventSourcing Live 2021](https://www.youtube.com/watch?v=Lu-skMQ-vAw) - [Event Modeling Anti-patterns - Kafka Summit London 2024 - Oskar Dudycz](https://www.youtube.com/watch?v=Lu-skMQ-vAw) ## 📦 Libraries - [Eventuous/eventuous](https://github.com/Eventuous/eventuous) - Minimalistic Event Sourcing library for .NET - [EventFlow](https://github.com/eventflow/EventFlow) - Async/await first CQRS+ES and DDD framework for .NET - [oskardudycz/GoldenEye](https://github.com/oskardudycz/GoldenEye) - The CQRS flavoured framework that will speed up your WebAPI and Microservices development - [AggregateSource](https://github.com/yreynhout/AggregateSource) - Lightweight infrastructure for doing eventsourcing using aggregates - [Projac](https://github.com/BitTacklr/Projac) - A set of .NET projection libraries - [Aggregates.NET](https://github.com/charlessolar/Aggregates.NET) - .NET event sourced domain driven design model via NServiceBus and GetEventStore - [CanerPatir/Algorist.EventSourcing](https://github.com/CanerPatir/Algorist.EventSourcing) - An event sourcing building block for .net core - [jet/equinox](https://github.com/jet/equinox) - .NET Event Sourcing library with CosmosDB, EventStoreDB, SqlStreamStore and integration test backends. - [revoframework/Revo](https://github.com/revoframework/Revo) - Event Sourcing, CQRS and DDD framework for C#/.NET Core - [gautema/cqrslite](https://github.com/gautema/cqrslite) - A lightweight framework to help creating CQRS and Eventsourcing applications in C# - [lucabriguglia/OpenCQRS](https://github.com/lucabriguglia/OpenCQRS) - .NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing. - [SQLStreamStore/SQLStreamStore](https://github.com/SQLStreamStore/SQLStreamStore) - Stream Store library targeting RDBMS based implementations for .NET - [jacqueskang/EventSourcing](https://github.com/jacqueskang/EventSourcing) - .NET Core event sourcing framework - [dasiths/NEventLite](https://github.com/dasiths/NEventLite) - NEventLite - An extensible lightweight library for .NET that manages the Aggregate lifecycle in an Event Sourced system. Supports Event and Snapshot storage providers like EventStore/Redis or SQL Server. Built with dependency injection in mind and seamlessly integrates with AspNetCore. - [Eveneum/Eveneum](https://github.com/Eveneum/Eveneum) - Event Store backed by Azure Cosmos DB - [Slacquer/api-blox](https://github.com/Slacquer/api-blox) - .NetCore & AspNetCore API Building Blocks. - [learningcom/Learning.EventStore](https://github.com/learningcom/Learning.EventStore) - A framework for CQRS, Eventsourcing, and messaging that uses Redis pub/sub for messaging and offers event persistence in Redis, SQL Server, or PostgreSQL. - [liquidprojections/LiquidProjections](https://github.com/liquidprojections/LiquidProjections) - [EventStore/replicator](https://github.com/EventStore/replicator) - Real-time replication tool - [nstoredev/NStore](https://github.com/nstoredev/NStore) - [IEvangelist/azure-cosmos-dotnet-repository](https://github.com/IEvangelist/azure-cosmos-dotnet-repository) - Wraps the .NET SDK for Azure Cosmos DB abstracting away the complexity, exposing a simple CRUD-based repository pattern - [ForrestTech/Eventus](https://github.com/ForrestTech/Eventus) - A framework for creating updating and storing event sourced aggregates using a range of storage providers. - [NEventStore/NEventStore](https://github.com/NEventStore/NEventStore) - A persistence agnostic Event Store for .NET - [ircnelson/enjoy.cqrs](https://github.com/ircnelson/enjoy.cqrs) - This library help you to build your applications using CQRS and Event source concepts. - [J-Tech-Japan/Sekiban](https://github.com/J-Tech-Japan/Sekiban) - Sekiban - an Opinionated Event Sourcing and CQRS Framework using C#. It can store data into Azure Cosmos DB, AWS Dynamo DB or Postgres ## 🚀 Samples - [VenomAV/EventSourcingCQRS](https://github.com/VenomAV/EventSourcingCQRS) - [oskardudycz/EventSourcing.NetCore](https://github.com/oskardudycz/EventSourcing.NetCore) - Examples and Tutorials of Event Sourcing in .NET - [oskardudycz/EventSourcing.NodeJS](https://github.com/oskardudycz/EventSourcing.NodeJS) - Examples and Tutorials of Event Sourcing in NodeJS - [mizrael/SuperSafeBank](https://github.com/mizrael/SuperSafeBank) - Sample Event Sourcing implementation with .NET Core - [Hands-On-Domain-Driven-Design-with-.NET-Core](https://github.com/PacktPublishing/Hands-On-Domain-Driven-Design-with-.NET-Core) - [Aggregates.NET](https://github.com/charlessolar/Aggregates.NET) - .NET event sourced domain driven design model via NServiceBus and GetEventStore - [eShopOnContainersDDD](https://github.com/charlessolar/eShopOnContainersDDD) - Fork of dotnet-architecture/eShopOnContainers in full DDD/CQRS design using my own patterns - [ProductContext-EventSourcing](https://github.com/osoykan/ProductContext-EventSourcing) - A practical/experimental Event Sourcing application on Product Bounded Context in an e-commerce - [ddd-and-eventsourcing-example](https://github.com/eraydin/ddd-and-eventsourcing-example) - [EventStore/Webinars](https://github.com/EventStore/Webinars) - [EventStore/samples](https://github.com/EventStore/samples) - Samples showing practical aspect of EventStoreDB, Event Sourcing - [ddd-by-examples/event-source-cqrs-sample](https://github.com/ddd-by-examples/event-source-cqrs-sample) - Sample ES/CQRS application - [exceptionnotfound/DotNetCqrsDemo](https://github.com/exceptionnotfound/DotNetCqrsDemo) - [NHadi/Pos](https://github.com/NHadi/Pos) - Sample Application DDD, Reactive Microservices, CQRS Event Sourcing Powered by DERMAYON LIBRARY - [oskardudycz/GoldenEye/DDD/Tickets](https://github.com/oskardudycz/GoldenEye/tree/35544a10bc0214cce73ec098c7f1dd3a949969a7/samples/DDD/Tickets) - [learningcom/Learning.EventStore](https://github.com/learningcom/Learning.EventStore) - A framework for CQRS, Eventsourcing, and messaging that uses Redis pub/sub for messaging and offers event persistence in Redis, SQL Server, or PostgreSQL. - [Reacture/FoxOffice](https://github.com/Reacture/FoxOffice) - Sample application demonstrating how to build a distributed cloud .NET Core application based on CQRS and Event Sourcing. - [amolenk/CosmosEventSourcing](https://github.com/amolenk/CosmosEventSourcing) - Example of event sourcing implemented with Cosmos DB - [UbiquitousLanguage/WorkshopEventSourcing](https://github.com/UbiquitousLanguage/WorkshopEventSourcing) - Practical event-sourcing with C# workshop repository - [madslundt/NetCoreMicroservicesSample](https://github.com/madslundt/NetCoreMicroservicesSample) - [Eventuous/dotnet-sample](https://github.com/Eventuous/dotnet-sample) - Sample application using Eventuous .NET - [oskardudycz/EventSourcing.NetCore/Workshops/IntroductionToEventSourcing](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Workshops/IntroductionToEventSourcing) - Introduction to Event Sourcing Workshop - [oskardudycz/EventSourcing.JVM](https://github.com/oskardudycz/EventSourcing.JVM) - Examples and Tutorials of Event Sourcing in JVM languages - [AleksK1NG/Java-Spring-CRQS-Eventsourcing-Microservice](https://github.com/AleksK1NG/Java-Spring-CRQS-Eventsourcing-Microservice) - Java-Spring-CRQS-Eventsourcing-Microservice - [AleksK1NG/Java-Quarkus-Reactive-CQRS-EventSourcing](https://github.com/AleksK1NG/Java-Quarkus-Reactive-CQRS-EventSourcing) - Java-Quarkus-Reactive-CQRS-EventSourcing - [evgeniy-khist/eventstoredb-event-sourcing](https://github.com/evgeniy-khist/eventstoredb-event-sourcing) - EventStoreDB is the database for Event Sourcing. This repository provides a sample of event sourced system that uses EventStoreDB as event store. - [evgeniy-khist/postgresql-event-sourcing](https://github.com/evgeniy-khist/postgresql-event-sourcing) - PostgreSQL is the world's most advanced open source database. Also, PostgreSQL is suitable for Event Sourcing. This repository provides a sample of event sourced system that uses PostgreSQL as event store. - [Finaps/EventSourcing](https://github.com/Finaps/EventSourcing) - Event Sourcing in .NET 6 - [bymyslf/payment-gateway](https://github.com/bymyslf/payment-gateway) - A sample project using Hexagonal (Ports & Adapters) architecture, Event Sourcing, CQRS and DDD tactical patterns - [softwaremill/reactive-event-sourcing-java](https://github.com/softwaremill/reactive-event-sourcing-java) - [RailsEventStore/ecommerce](https://github.com/RailsEventStore/ecommerce) - Application with CQRS and Event Sourcing built on Rails and Rails Event Store - [AleksK1NG/Kotlin-ES-CQRS-Microservice](https://github.com/AleksK1NG/Kotlin-ES-CQRS-Microservice) - Kotlin-ES-CQRS-Microservice - [oskardudycz/EventStoreInOneHour](https://github.com/oskardudycz/EventStoreInOneHour) - Repository for Live Stream "Event Store in One Hour" - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - A full-stack .NET 7 EDA solution - [MarkNijhof/Fohjin](https://github.com/MarkNijhof/Fohjin) - This is a personal sand box - [EventStore/training-advanced-dotnet](https://github.com/EventStore/training-advanced-dotnet) - [mat-mcloughlin/PatientMangement](https://github.com/mat-mcloughlin/PatientMangement) - A simple example of how to build an event sourced application - [klimisa/aggregate-implementation-patterns-csharp](https://github.com/klimisa/aggregate-implementation-patterns-csharp) - Aggregate implementations workshop port to C# - [bitloops/ddd-hexagonal-cqrs-es-eda](https://github.com/bitloops/ddd-hexagonal-cqrs-es-eda) - Complete working example of using Domain Driven Design (DDD), Hexagonal Architecture, CQRS, Event Sourcing (ES), Event Driven Architecture (EDA), Behaviour Driven Development (BDD) using TypeScript and NestJS - [matt-bentley/AspNetCore.EventSourcing](https://github.com/matt-bentley/AspNetCore.EventSourcing) - Simple Event Sourcing implementation in ASP.NET with Entity Framework Core and MediatR - [JasperFx/CritterStackSamples](https://github.com/JasperFx/CritterStackSamples) - Samples using the "Critter Stack" Tools - [oskardudycz/EventSourcing.JVM/tree/main/samples/event-sourcing-esdb-aggregates](https://github.com/oskardudycz/EventSourcing.JVM/tree/main/samples/event-sourcing-esdb-aggregates) ⭐ - [oskardudycz/EventSourcing.NetCore/tree/main/Sample/EventStoreDB/ECommerce](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/EventStoreDB/ECommerce) ⭐ - [oskardudycz/EventSourcing.JVM/tree/main/samples/event-sourcing-esdb-simple](https://github.com/oskardudycz/EventSourcing.JVM/tree/main/samples/event-sourcing-esdb-simple) ⭐ - [oskardudycz/EventSourcing.NetCore/tree/main/Sample/EventStoreDB/Simple](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/EventStoreDB/Simple) ⭐ - [oskardudycz/EventSourcing.NetCore/tree/main/Sample/EventsVersioning](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/EventsVersioning) ⭐ ================================================ FILE: docs/eventual-consistency.md ================================================ # Eventual Consistency ## 📕 Articles - [Consistency Patterns: Eventual Consistency](https://systemdesign.one/consistency-patterns/) - [Processing multiple aggregates – transactional vs eventual consistency](http://www.kamilgrzybek.com/design/processing-multiple-aggregates-transactional-vs-eventual-consistency/) - [Eventual Consistency for Mere Mortals](https://ralfw.de/eventual-consistency-for-mere-mortals/) - [The Perils of Event-Driven: Eventual Consistency](https://medium.com/@hugo.oliveira.rocha/handling-eventual-consistency-11324324aec4) - [Handling Eventual Consistency with Distributed Systems](https://medium.com/ssense-tech/handling-eventual-consistency-with-distributed-system-9235687ea5b3) ⭐ - [Dealing with Eventual Consistency and Idempotency in MongoDB projections](https://event-driven.io/en/dealing_with_eventual_consistency_and_idempotency_in_mongodb_projections/) - [Long-polling, how to make our async API synchronous](https://event-driven.io/en/long_polling_and_eventual_consistency/) ## 📺 Videos - [Eventual Consistency is a UX Nightmare](https://www.youtube.com/watch?v=wEUTMuRSZT0) - [Dealing with eventual consistency - Dennis van der Stelt - NDC Oslo 2022](https://www.youtube.com/watch?v=Wy-BmhB6ty4) ================================================ FILE: docs/functional.md ================================================ # Functional Programming ## 📘 Resources - [xgrommx/awesome-functional-programming](https://github.com/xgrommx/awesome-functional-programming) - Yet another resource for collecting articles, videos etc. regarding functional programming - [lucasviola/awesome-functional-programming](https://github.com/lucasviola/awesome-functional-programming) - A curated list of functional programming resources such as blog posts, communities, discussion topics, wikis and more. ## 📕 Articles - [Functional C#: Immutability](https://enterprisecraftsmanship.com/posts/functional-c-immutability/) - [Functional C#: Primitive obsession](https://enterprisecraftsmanship.com/posts/functional-c-primitive-obsession/) - [Functional C#: Non-nullable reference types](https://enterprisecraftsmanship.com/posts/functional-c-non-nullable-reference-types/) - [Functional C#: Handling failures, input errors](https://enterprisecraftsmanship.com/posts/functional-c-handling-failures-input-errors/) - [Union types in C# - Event-Driven.io](https://www.notion.so/mehdihadeli/Union-types-in-C-Event-Driven-io-4737f97b80e84ba2b5f5c530cbe4eae0) ## 📺 Videos - [Functional Programming for Pragmatists • Richard Feldman • GOTO 2021](https://www.youtube.com/watch?v=3n17wHe5wEw) - [Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019](https://www.youtube.com/watch?v=2JB1_e5wZmU) ## 📦 Libraries - [mcintyre321/OneOf](https://github.com/mcintyre321/OneOf) - Easy to use F#-like ~discriminated~ unions for C# with exhaustive compile time matching - [ardalis/Result](https://github.com/ardalis/Result) - A result abstraction that can be mapped to HTTP response codes if needed. ================================================ FILE: docs/grpc.md ================================================ # gRPC ## 📘 Resources - [Awesome gRPC](https://github.com/grpc-ecosystem/awesome-grpc) - [gRPC for WCF developers e-book](https://dotnet.microsoft.com/download/e-book/grpc-for-wcf-devs/pdf) ## 📝 Articles - [gRPC Quick start](https://grpc.io/docs/languages/csharp/quickstart/) - [gRPC Basics tutorial](https://grpc.io/docs/languages/csharp/basics/) - [Language Guide (proto3)](https://developers.google.com/protocol-buffers/docs/proto3) - [Protocol Buffer Basics: C#](https://developers.google.com/protocol-buffers/docs/csharptutorial) - [gRPC Style Guide](https://developers.google.com/protocol-buffers/docs/style) - [Introduction to gRPC on .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/) - [Protobuf scalar data types](https://learn.microsoft.com/en-us/dotnet/architecture/grpc-for-wcf-developers/protobuf-data-types) - [gRPC services with C#](https://docs.microsoft.com/en-us/aspnet/core/grpc/basics) - [gRPC services with ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/grpc/aspnetcore) - [Create gRPC services and methods](https://docs.microsoft.com/en-us/aspnet/core/grpc/services) - [Call gRPC services with the .NET client](https://docs.microsoft.com/en-us/aspnet/core/grpc/client) - [gRPC client factory integration in .NET Core](https://docs.microsoft.com/en-us/aspnet/core/grpc/clientfactory) - [gRPC and C# 8 Async stream](https://laurentkempe.com/2019/09/18/gRPC-and-csharp-8-Async-stream/) - [gRPC and C# 8 Async stream cancellation](https://laurentkempe.com/2019/09/25/gRPC-and-csharp-8-Async-stream-cancellation/) - [Code first gRPC services and clients with .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/code-first) - [Create JSON Web APIs from gRPC](https://docs.microsoft.com/en-us/aspnet/core/grpc/httpapi) - [Using gRPC in Microservices for Building a high-performance Interservice Communication with .Net 5](https://medium.com/aspnetrun/using-grpc-in-microservices-for-building-a-high-performance-interservice-communication-with-net-5-11f3e5fa0e9d) - [Generate Links To ASP.NET Core Map Endpoints](https://khalidabuhakmeh.com/generate-links-to-aspnet-core-map-endpoints) - [Building a simple Client-Server Interaction with gRPC in ASP.NET Core](https://referbruv.com/blog/posts/building-a-simple-client-server-interaction-with-grpc-in-aspnet-core) - [How to choose between protobuf-csharp-port and protobuf-net](https://stackoverflow.com/questions/2522376/how-to-choose-between-protobuf-csharp-port-and-protobuf-net) - [gRPC performance benchmark in ASP.NET Core 3](https://pawelkmiec.net/2019/11/17/gRPC-performance-benchmark.html) - [Trying out gRPC in ASP.NET Core 3](https://pawelkmiec.net/2019/10/18/gRPC-ASP.NET-Core.html) - [Getting Started protobuf-net.Grpc](https://protobuf-net.github.io/protobuf-net.Grpc/gettingstarted) - [gRPC & ASP.NET Core 3.1: Resiliency with Polly](https://anthonygiretti.com/2020/03/31/grpc-asp-net-core-3-1-resiliency-with-polly/) - [gRPC & ASP.NET Core 3.1: Global error Handling in gRPC & gRPC status codes](https://anthonygiretti.com/2020/03/31/grpc-asp-net-core-3-1-global-error-handling-in-grpc-grpc-status-codes/) - [gRPC & ASP.NET Core 3.1: Message validation](https://anthonygiretti.com/2020/05/18/grpc-asp-net-core-3-1-model-validation/) - [gRPC & ASP.NET Core 3.1: What’s gRPC-web & how to create a gRPC-web service ?](https://anthonygiretti.com/2020/03/29/grpc-asp-net-core-3-1-whats-grpc-web-how-to-create-a-grpc-web-service/) - [The state of gRPC in the browser](https://grpc.io/blog/state-of-grpc-web/) - [gRPC & ASP.NET Core 3.1: How to create a gRPC service ?](https://anthonygiretti.com/2020/03/25/grpc-asp-net-core-3-1-how-to-create-a-grpc-service/) - [gRPC & ASP.NET Core 3.1: What’s gRPC ? (introduction)](https://anthonygiretti.com/2020/03/23/grpc-asp-net-core-3-1-whats-grpc-introduction/) - [gRPC & ASP.NET Core 3.1: How to create a gRPC-web client ? Examples with Angular 8 and HttpClient](https://anthonygiretti.com/2020/03/29/grpc-asp-net-core-3-1-how-to-create-a-grpc-web-client-examples-with-angular-8-and-httpclient/) - [gRPC and ASP.NET Core 5 Discover gRPCui the GUI alternative to gRPCurl](https://anthonygiretti.com/2021/01/17/grpc-asp-net-core-5-discover-grpcui-the-gui-alternative-to-grpcurl/) - [gRPC and ASP.NET Core 5 Add a gRPC service reference from a remote protobuf over Route-To-Code](https://anthonygiretti.com/2021/01/25/grpc-asp-net-core-5-add-a-grpc-service-reference-from-a-remote-protobuf-over-route-to-code/) - [gRPC and ASP.NET Core 5 Test gRPC endpoints with gRPCurl](https://anthonygiretti.com/2021/01/13/grpc-asp-net-core-5-test-grpc-endpoints-with-grpcurl/) - [What’s new for gRPC in .NET 6](https://devblogs.microsoft.com/dotnet/grpc-in-dotnet-6/) - [gRPC client-side load balancing in .NET](https://rebin.dev/post/grpc-client-side-load-balancing-indotnet/) - [gRPC with ASP.NET Core](https://rafaelldi.blog/posts/grpc-with-asp-net-core/) - [Protobuf In C# .NET – Part 1 – Getting Started](https://dotnetcoretutorials.com/2022/01/13/protobuf-in-c-net-part-1-getting-started/) - [Protobuf In C# .NET – Part 2 – Serializing/Deserializing](https://dotnetcoretutorials.com/2022/01/13/protobuf-in-c-net-part-2-serializing-deserializing/) - [Code-first gRPC services and clients with .NET](https://docs.microsoft.com/en-us/aspnet/core/grpc/code-first) - [gRPC Server Reflection in the .NET world](https://martinbjorkstrom.com/posts/2020-07-08-grpc-reflection-in-net) - [Announcing gRPC JSON transcoding for .NET](https://devblogs.microsoft.com/dotnet/announcing-grpc-json-transcoding-for-dotnet/) - [Postman Now Supports gRPC](https://blog.postman.com/postman-now-supports-grpc/) - [.NET 6: Enhance your gRPC client logs with a generic logging interceptor](https://anthonygiretti.com/2022/08/08/net-6-enhance-your-grpc-client-logs-with-a-generic-logging-interceptor/) - [gRPC client-side load balancing](https://docs.microsoft.com/en-us/aspnet/core/grpc/loadbalancing) - [ASP.NET Core 6: Here is the best way to pass a JWT in the headers of a gRPC client](https://anthonygiretti.com/2022/08/15/asp-net-core-6-here-is-the-best-way-to-pass-a-jwt-in-the-headers-of-a-grpc-client/) - [ASP.NET Core 6: Handling gRPC exception correctly server side](https://anthonygiretti.com/2022/08/28/asp-net-core-6-handling-grpc-exception-correctly-server-side/) - [Testing ASP.NET Core gRPC services in JetBrains Rider](https://andrewlock.net/testing-aspnetcore-grpc-services-in-jetbrains-rider/) - [Sharing gRPC ProtoBuf contracts using a REST endpoint](https://devblogs.microsoft.com/premier-developer/sharing-grpc-protobuf-contracts-using-a-rest-endpoint/) - [How to share Protobuf definitions for gRPC Services?](https://mrico.eu/how-to-share-protobuf-for-grpc-services/) - [Sharing gRPC protobufs between microservices](https://jozefcipa.com/blog/sharing-grpc-protobufs-between-microservices/) ⭐ - [Packaging Generated Code for gRPC Services](https://www.bugsnag.com/blog/libraries-for-grpc-services/) ⭐ - [](https://medium.com/namely-labs/how-we-build-grpc-services-at-namely-52a3ae9e7c35) ## 📹 Videos - [Bidirectional Streaming | gRPC in .NET 5](https://www.youtube.com/watch?v=wY4nMSUF9e0) - [Client Streaming | gRPC in .NET 5](https://www.youtube.com/watch?v=DNxdvRQ4qRQ) - [gRPC Server & Unary Calls | gRPC in .NET 5](https://www.youtube.com/watch?v=hp5FTB7PI9s) - [Server Streaming | gRPC in .NET 5](https://www.youtube.com/watch?v=F2T6xNRoa1E) - [Intro to gRPC - Step by Step](https://www.youtube.com/watch?v=SRjIp96Qox0) - [Mark Gravell Talking Between Services with gRPC and Other Tricks - .NET Oxford - September 2019](https://www.youtube.com/watch?v=ZM0XeSjuwbc) - [Talking between services with gRPC, and other tricks - Marc Gravell](https://www.youtube.com/watch?v=W-bULzA0ki8) - [Embracing gRPC in .NET, by Irina Scurtu](https://www.youtube.com/watch?v=d8S9jh6Xj6Y) - [gRPC Client/Server Bi-Directional Streaming with C# | Visual Studio 2019](https://www.youtube.com/watch?v=6fiSsxEY4dg) - [Nate Barbettini – API Throwdown: RPC vs REST vs GraphQL, Iterate 20](https://www.youtube.com/watch?v=IvsANO0qZEg) - [High-performance services with gRPC: What's new in .NET 6](https://www.youtube.com/watch?v=CXH_jEa8dUw) - [gRPC Load Balancing on Kubernetes - Jan Tattermusch, Google (Intermediate Skill Level)](https://www.youtube.com/watch?v=F2znfxn_5Hg) - [ASP.NET Community Standup - gRPC Updates in .NET 7](https://www.youtube.com/watch?v=ds27V6rNick) - [Where should you use gRPC? And where NOT to use it!](https://youtu.be/4SuFtQV8RCk) - [High-performance services with gRPC: What's new in .NET 7 | .NET Conf 2022](https://www.youtube.com/watch?v=et_2NBk4N4Y) - [gRPC Error handling in gRPC Bidirectional streams](https://www.youtube.com/watch?v=IT4OfN27D4c) ## 📦 Libraries - [grpc/grpc-dotnet](https://github.com/grpc/grpc-dotnet) - gRPC for .NET - [protobuf-net/protobuf-net.Grpc](https://github.com/protobuf-net/protobuf-net.Grpc) - GRPC bindings for protobuf-net and grpc-dotnet - [protobuf-net/protobuf-net](https://github.com/protobuf-net/protobuf-net) - Protocol Buffers library for idiomatic .NET - [Utils.Grpc.Mediator](https://github.com/gbauso/grpc_microservices/tree/master/lib/Utils.Grpc.Mediator/src/Utils.Grpc.Mediator) - [Cysharp/MagicOnion](https://github.com/Cysharp/MagicOnion) - Unified Realtime/API framework for .NET platform and Unity. - [AnthonyGiretti/grpc-aspnetcore-validator](https://github.com/AnthonyGiretti/grpc-aspnetcore-validator) - Simple request message validator for grpc.aspnetcore - [grpc-ecosystem/grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway) - gRPC to JSON proxy generator following the gRPC HTTP spec - [bufbuild/buf](https://github.com/bufbuild/buf) - A new way of working with Protocol Buffers. ## 🚀 Samples - [aspnetrun/run-aspnet-grpc](https://github.com/aspnetrun/run-aspnet-grpc) - Using gRPC in Microservices for Building a high-performance Interservice Communication with .Net 5. See gRPC Microservices and Step by Step Implementation on .NET Course w/ discount - [jtattermusch/grpc-loadbalancing-kubernetes-examples](https://github.com/jtattermusch/grpc-loadbalancing-kubernetes-examples) - gRPC Load Balancing on Kubernetes examples - [wicharypawel/net-core-grpc-load-balance](https://github.com/wicharypawel/net-core-grpc-load-balance) - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - The main objective of this cloud-native project is to represent the state of the art of a distributed, reliable, and highly scalable system by interpreting the most relevant principles of Reactive Domain Driven Design. ================================================ FILE: docs/hexagonal-architecture.md ================================================ # Hexagonal Architecture - (Ports And Adapters Architecture) ## 📕 Articles - [Ports & Adapters Architecture](https://herbertograca.com/2017/09/14/ports-adapters-architecture/) - [DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together](https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/) - [Hexagonal architecture](http://web.archive.org/web/20180422210157/http://alistair.cockburn.us/Hexagonal+Architecture) - [Hexagonal (Ports & Adapters) Architecture](https://medium.com/@TKonuklar/hexagonal-ports-adapters-architecture-e3617bcf00a0) - [Hexagonal Architecture: the practical guide for a clean architecture](https://beyondxscratch.com/2017/08/19/hexagonal-architecture-the-practical-guide-for-a-clean-architecture/) - [Hexagonal Architecture Example: digging a Spring Boot implementation](https://beyondxscratch.com/2020/08/23/hexagonal-architecture-example-digging-a-spring-boot-implementation/) - [Hexagonal architecture: don't get lost on your right-side](http://tpierrain.blogspot.com/2020/03/hexagonal-architecture-dont-get-lost-on.html) - [Ports and Adapters Pattern(Hexagonal Architecture)](https://jmgarridopaz.github.io/content/hexagonalarchitecture.html) - [HEXAGONAL ARCHITECTURE](https://www.qwan.eu/2020/08/20/hexagonal-architecture.html) - [SLICING YOUR CAKE - STRUCTURING YOUR HEXAGONS](https://www.qwan.eu/2021/02/15/slicing-your-cake.html) - [Hexagonal Architecture demystified](https://madewithlove.com/blog/software-engineering/hexagonal-architecture-demystified/) - [Clean architecture series— Part 1](https://pereiren.medium.com/clean-architecture-series-part-1-f34ef6b04b62) - [Implementing Hexagonal Ports and Adapters Architectural Style](https://amanagrawal.blog/2018/11/17/implementing-hexagonal-ports-and-adapters-architectural-style/) - [Hexagonal Architecture Style](https://github.com/ivanpaulovich/clean-architecture-manga/wiki/Architecture-Styles#ports-and-adapters-architecture-style) - [Ports & Adapters architecture on example](https://wkrzywiec.medium.com/ports-adapters-architecture-on-example-19cab9e93be7) - [Hexagonal Architecture with Java and Spring](https://reflectoring.io/spring-hexagonal/) - [Layers, Onions, Ports, Adapters: it's all the same](https://blog.ploeh.dk/2013/12/03/layers-onions-ports-adapters-its-all-the-same/) - [Ready for changes with Hexagonal Architecture](https://netflixtechblog.com/ready-for-changes-with-hexagonal-architecture-b315ec967749) - [Hexagonal Architecture](https://fideloper.com/hexagonal-architecture) - [What is Hexagonal Architecture?](https://culttt.com/2014/12/31/hexagonal-architecture/) - [Hexagonal != Layers](https://tpierrain.blogspot.com/2016/04/hexagonal-layers.html) - [Domain-Driven Design and the Hexagonal Architecture](https://vaadin.com/learn/tutorials/ddd/ddd_and_hexagonal) - [Hexagonal Architecture by example - a hands-on introduction](https://blog.allegro.tech/2020/05/hexagonal-architecture-by-example.html) - [Another story about microservices: Hexagonal Architecture](https://medium.com/sciforce/another-story-about-microservices-hexagonal-architecture-23db93fa52a2) - [A Color Coded Guide to Ports and Adapters](https://8thlight.com/blog/damon-kelley/2021/05/18/a-color-coded-guide-to-ports-and-adapters.html) - [Let’s learn Hexagonal Architecture!](https://sketchingdev.co.uk/blog/lets-learn-hexagonal-architecture.html) - [A zoom on the hexagonal/clean/onion architecture](http://tpierrain.blogspot.com/2013/08/a-zoom-on-hexagonalcleanonion.html) - [Hexagonal != Layers](http://tpierrain.blogspot.com/2016/04/hexagonal-layers.html) - [Hexagonal architecture: don't get lost on your right-side](https://tpierrain.blogspot.com/2020/03/hexagonal-architecture-dont-get-lost-on.html) - [Hexagonal or not Hexagonal?](http://tpierrain.blogspot.com/2020/11/hexagonal-or-not-hexagonal.html) - [Software Architecture](https://dev.to/vrnsky/software-architecture-1k7e) - [How to apply Hexagonal Architecture with .NET](https://gsferreira.com/archive/2022/how-to-apply-hexagonal-architecture-with-dotnet/) ## 📺 Videos - [Chris Fidao - Hexagonal Architecture](https://www.youtube.com/watch?v=6SBjKOwVq0o) - [Hexagonal Architecture in 10 min](https://www.youtube.com/watch?v=NmD82RAMZ68) - [How to apply Hexagonal Architecture with .NET](https://www.youtube.com/watch?v=MjnZKYZRjjs) - [Valentina Cupać - Hexagonal Architecture](https://www.youtube.com/playlist?list=PL1msPBH9ZGkhpANkreFA_teOnloVdLuCx) ## 🚀 Samples - [Sairyss/domain-driven-hexagon](https://github.com/Sairyss/domain-driven-hexagon) - Guide on Domain-Driven Design, Hexagonal architecture, best practices etc. - [ivanpaulovich/hexagonal-architecture-acerola](https://github.com/ivanpaulovich/hexagonal-architecture-acerola) - An Hexagonal Architecture service template with DDD, CQRS, TDD and SOLID using .NET Core 2.0. All small features are testable and could be mocked. Adapters could be mocked or exchanged. - [ivanpaulovich/clean-architecture-manga](https://github.com/ivanpaulovich/clean-architecture-manga) - Clean Architecture with .NET5, C#9 and React+Redux. Use cases as central organizing structure, completely testable, decoupled from frameworks - [CanerPatir/aspnet-core-clean-arch](https://github.com/CanerPatir/aspnet-core-clean-arch) - It is a clean architecture project template which is based on hexagonal-architecture principles built with .Net core. - [Lunch-box/SimpleOrderRouting](https://github.com/Lunch-box/SimpleOrderRouting) - Prototype of a Smart Order Routing system (finance). The opportunity for a mob of Lunch-boxers, to explore various technical approaches in reactive programming. - [SketchingDev/hexagonal-lambda](https://github.com/SketchingDev/hexagonal-lambda) - NodeJS project demonstrating an AWS Lambda using Hexagonal architecture. - [damonkelley/ports-and-adapters-examples](https://github.com/damonkelley/ports-and-adapters-examples) - Ports and Adapters Examples - [tpierrain/hexagonalThis](https://github.com/tpierrain/hexagonalThis) - A simple kata to live-code with Alistair about Hexagonal Architecture ================================================ FILE: docs/iaas/ansible.md ================================================ # Ansible ## Resources - [omerbsezer/Fast-Ansible](https://github.com/omerbsezer/Fast-Ansible) - This repo covers Ansible with LABs ## Articles - [Automate EVERYTHING with Ansible!](https://docs.technotim.live/posts/ansible-automation/) - [Using Ansible through Windows 10's Subsystem for Linux](https://www.jeffgeerling.com/blog/2017/using-ansible-through-windows-10s-subsystem-linux) - [Getting started with Ansible: local automation of Windows 10 and Ubuntu 20.04 workstations](https://levelup.gitconnected.com/getting-started-with-ansible-local-automation-of-windows-10-and-ubuntu-20-04-workstations-ffd03d7dc923) ⭐ - [How to run an Ansible playbook locally](https://gist.github.com/alces/caa3e7e5f46f9595f715f0f55eef65c1) - [Automating your development environment with Ansible](https://www.nickhammond.com/automating-development-environment-ansible/) - [Setting up your development environment with Ansible](https://roelofjanelsinga.com/articles/set-up-your-development-environment-with-ansible/) - [Ansible for dotfiles: the introduction I wish I've had](https://phelipetls.github.io/posts/introduction-to-ansible/) ⭐ - [Ansible playbooks - Docs](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_intro.html) - [Working with playbooks - Docs](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks.html) - [How to build your inventory - Docs](https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html) - [Using Ansible collections - Docs](https://docs.ansible.com/ansible/latest/collections_guide/index.html) - [Understanding privilege escalation: become - Docs](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_privilege_escalation.html) - [Using Ansible modules and plugins - Docs](https://docs.ansible.com/ansible/latest/module_plugin_guide/index.html) - [Discovering variables: facts and magic variables - Docs](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_vars_facts.html) - [Organizing host and group variables - Docs](https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html#organizing-host-and-group-variables) - [Conditionals - Docs](docs.ansible.com/ansible/latest/playbook_guide/playbooks_conditionals.html) - [Template Designer Documentation](https://jinja.palletsprojects.com/en/3.1.x/templates/) - [Roles - DOcs](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html) - [8 steps to developing an Ansible role in Linux](https://www.redhat.com/sysadmin/developing-ansible-role) - [Introduction To Ansible Roles](https://medium.com/@mitesh_shamra/ansible-roles-1d1954f9932a) - [Writing Ansible Roles with Confidence](https://insights.sei.cmu.edu/blog/writing-ansible-roles-with-confidence/) - [Manage your dotfiles with Ansible](https://medium.com/espinola-designs/manage-your-dotfiles-with-ansible-6dbedd5532bb) ## Videos - [Automate EVERYTHING with Ansible! (Ansible for Beginners)](https://www.youtube.com/watch?v=w9eCU4bGgjQ) - [The FASTEST Way to run Kubernetes at Home - k3s Ansible Automation](https://www.youtube.com/watch?v=CbkEWcUZ7zM&t=57s) ## Tools & Libraries - [willhallonline/docker-ansible](https://github.com/willhallonline/docker-ansible) ## Samples - [ansible/ansible-examples](https://github.com/ansible/ansible-examples) - A few starter examples of ansible playbooks, to show features and how they work together - [jasonwc/setup](https://github.com/jasonwc/setup) - Ansible Playbooks for setting up WSL/Multipass VMs - [AlexNabokikh/wsl-playbook](https://github.com/AlexNabokikh/wsl-playbook) - Ubuntu WSL2 setup and configuration via Ansible. - [AlexNabokikh/windows-playbook](https://github.com/AlexNabokikh/windows-playbook) - Windows setup and configuration via Ansible. - [phelipetls/dotfiles](https://github.com/phelipetls/dotfiles) - My configuration files for Linux and macOS ================================================ FILE: docs/iaas/iaas.md ================================================ # Infrastructure As a Service ## 📺 Videos - [What is Infrastructure as Code?](https://www.youtube.com/watch?v=zWw2wuiKd5o&list=PLOspHqNVtKACSagAEeIY20NMVLNeQ1ZJx&index=3) - [Pulumi - IaC in your favorite programming language!](https://www.youtube.com/watch?v=vIjeiDcsR3Q) ================================================ FILE: docs/iaas/nomad.md ================================================ # Nomad ## 📘 Resources - [jippi/awesome-nomad](https://github.com/jippi/awesome-nomad) - A curated list of amazingly awesome Nomad tools and shiny things. ### 📕Articles - [HashiCorp Nomad — From Zero to WOW!](https://medium.com/hashicorp-engineering/hashicorp-nomad-from-zero-to-wow-1615345aa539) - [Traefik Proxy Now Fully Integrates with Hashicorp Nomad](https://traefik.io/blog/traefik-proxy-fully-integrates-with-hashicorp-nomad/) - [Consul Connect Integration in HashiCorp Nomad](https://www.hashicorp.com/blog/consul-connect-integration-in-hashicorp-nomad) - [Practical Hashicorp Nomad and Consul — A little more than Hello World (Part 1)](https://medium.com/navin-nair/practical-hashicorp-nomad-and-consul-a-little-more-than-hello-world-part-1-991d2a54fd64) - [Scraping Prometheus metrics with Nomad and Consul Connect](https://www.mattmoriarity.com/2021-02-21-scraping-prometheus-metrics-with-nomad-and-consul-connect/) - [Just-in-time Nomad: A Beginner’s Guide to Understanding HashiCorp Nomad](https://storiesfromtheherd.com/just-in-time-nomad-80f57cd403ca) - [Just-in-Time Nomad: Running the OpenTelemetry Collector on Hashicorp Nomad with HashiQube](https://storiesfromtheherd.com/just-in-time-nomad-running-the-opentelemetry-collector-on-hashicorp-nomad-with-hashiqube-4eaf009b8382) - [Just-in-Time Nomad: Running Traefik on Nomad with HashiQube](https://adri-v.medium.com/just-in-time-nomad-running-traefik-on-hashiqube-7d6dfd8ef9d8) - [HashiCorp Nomad: A Response to Kubernetes Complexity](https://traefik.io/glossary/hashicorp-nomad-101/) - [Nomad vs. Kubernetes: container orchestration tools compared](https://www.imaginarycloud.com/blog/nomad-vs-kubernetes/) ## Vidoes - [From Zero to WOW! with Nomad](https://www.youtube.com/watch?v=xl58mjMJjrg) - [Deploy Your First App with HashiCorp Nomad in 20 mins](https://www.youtube.com/watch?v=SSfuhOLfJUg) - [Nomad - The Hard Way](https://www.youtube.com/watch?v=31rvngI7vUk) - [Nomad: Kubernetes without the complexity - Andy Davies](https://www.youtube.com/watch?v=GkmyNBUugg8) ## 📦 Libraries - [jippi/hashi-ui](https://github.com/jippi/hashi-ui) - A modern user interface for @hashicorp Consul & Nomad - [jsiebens/hashi-up](https://github.com/jsiebens/hashi-up) - bootstrap HashiCorp Consul, Nomad, or Vault over SSH < 1 minute ## 🚀 Samples - [thangchung/coffeeshop-on-nomad](https://github.com/thangchung/coffeeshop-on-nomad) - The .NET coffeeshop application runs on Docker, Nomad and Consul Connect - [lastlegion/Container-Patterns-With-Nomad](https://github.com/lastlegion/Container-Patterns-With-Nomad) - - [fhemberger/nomad-demo](https://github.com/fhemberger/nomad-demo) - Vagrant based demo setup for running Hashicorp Nomad - [anubhavmishra/envoy-consul-sds](https://github.com/anubhavmishra/envoy-consul-sds) - Envoy Consul Service Discovery Service - [nairnavin/practical-nomad-consul](https://github.com/nairnavin/practical-nomad-consul) - Set up a 3 Tier application (classic springboot petclinic) in a Nomad / Consul cluster leveraging features of service mesh, ingress and terminating gateways, load balancers etc. - [russparsloe/nomad-zero-to-wow](https://github.com/russparsloe/nomad-zero-to-wow) - [hashicorp/nomad-open-telemetry-getting-started](https://github.com/hashicorp/nomad-open-telemetry-getting-started) - OpenTelemetry getting started guides on Nomad - [open-telemetry/opentelemetry-collector-contrib/nomad](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/examples/nomad) - [hashicorp/nomad-autoscaler-demos](https://github.com/hashicorp/nomad-autoscaler-demos) - A set of demos for the Nomad Autoscaler ================================================ FILE: docs/iaas/pulumi.md ================================================ # Pulumi ## 📕 Articles - [Building Modern Cloud Applications using Pulumi and .NET Core](https://devblogs.microsoft.com/dotnet/building-modern-cloud-applications-using-pulumi-and-net-core/) - [Manage Azure infrastructure with Pulumi and .NET C#](https://daniel-krzyczkowski.github.io/Manage-Azure-Infrastructure-With-Pulumi-And-C-Copy-Copy/) - [GitLab, .NET Core, Kubernetes, and Pulumi](https://zimarev.com/blog/devops/2020-08-10-gitlab-k8s-dotnet-pulumi/) - [GitLab, .NET Core, Kubernetes, and Pulumi - Part 2](https://zimarev.com/blog/devops/2021-03-31-gitlab-pulumi-dotnet/) ## 📺 Videos - [Getting started with cloud deployments with Pulumi and .NET](https://www.youtube.com/watch?v=sig68daTG-0) - [Easier infrastructure and safer secrets with Pulumi, Azure, and .Net Core - Rian Finnegan](https://www.youtube.com/watch?v=1NPhr5UeTqs) - [Pulumi - Infrastructure as Code (IaC) Using Programming Languages](https://www.youtube.com/watch?v=oE3BUi_N0qc) - [Managing any Cloud with .NET](https://www.youtube.com/watch?v=hXhZiHtT8f0) ## 📦 Libraries - [pulumi/pulumi-dotnet](https://github.com/pulumi/pulumi-dotnet) - Dotnet support for Pulumi ## 🚀 Samples - [pulumi/examples](https://github.com/pulumi/examples) - [martinothamar/EasyAzureWebApp](https://github.com/martinothamar/EasyAzureWebApp) - A sample easy to deploy full stack C# Azure web app using Pulumi ================================================ FILE: docs/iaas/terraform.md ================================================ # Terraform ## Resources - [shuaibiyy/awesome-tf](https://github.com/shuaibiyy/awesome-tf) - Curated list of resources on HashiCorp's Terraform and OpenTofu ## 📕 Articles ## 📺 Videos - [Terraform for Beginners + Labs](https://www.youtube.com/watch?v=YcJ9IeukJL8) - [Full Course - Infrastructure as Code with Terraform, Azure DevOps, Azure, Github, Docker and .Net 5](https://www.youtube.com/watch?v=q4xNBqvD1uU) - [Azure DevOps: Provision API Infrastructure using Terraform - Full Course](https://www.youtube.com/watch?v=Ff0DoAmpv6w) - [Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code)](https://www.youtube.com/watch?v=7xngnjfIlK4) - [Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code)](https://www.youtube.com/watch?v=7xngnjfIlK4) - [HashiCorp Terraform Associate Certification Course (003) - Pass the Exam!](https://www.youtube.com/watch?v=SPcwo0Gq9T8) - [HashiCorp Terraform Associate Certification Course - Pass the Exam!](https://www.youtube.com/watch?v=V4waklkBC38) ## 📦 Libraries - [minamijoyo/tfedit](https://github.com/minamijoyo/tfedit) - A refactoring tool for Terraform - [gruntwork-io/terratest](https://github.com/gruntwork-io/terratest) - Terratest is a Go library that makes it easier to write automated tests for your infrastructure code. - [terraform-linters/tflint](https://github.com/terraform-linters/tflint) - A Pluggable Terraform Linter - [sudokar/generator-tf-module](https://github.com/sudokar/generator-tf-module) - Project scaffolding for Terraform ## 🚀 Samples - [twzhangyang/RestAirline](https://github.com/twzhangyang/RestAirline) - DDD+CQRS+EventSourcing+Hypermedia API+ASP.NET Core 3.1+Masstransit+terraform+docker+k8s - [bravecobra/k8s-dev-infrastructure](https://github.com/bravecobra/k8s-dev-infrastructure) - A local dev infrastructure on k8s, providing networking, telemetry and saas services - [sidpalas/devops-directive-terraform-course](https://github.com/sidpalas/devops-directive-terraform-course) - Companion repo for complete Terraform course - [Physer/Microshop.NET/infrastructure/terraform](https://github.com/Physer/Microshop.NET/tree/main/infrastructure/terraform) - [maddevsio/aws-eks-base](https://github.com/maddevsio/aws-eks-base) - This boilerplate contains terraform configurations for the rapid deployment of a Kubernetes cluster, supporting services, and the underlying infrastructure in AWS. - [Azure/terraform-azure-modules](https://github.com/Azure/terraform-azure-modules) - Azure verified modules for Terraform - [aztfmod/terraform-azurerm-caf](https://github.com/aztfmod/terraform-azurerm-caf) - Terraform supermodule for the Terraform platform engineering for Azure - [Azure/azure-data-labs-modules](https://github.com/Azure/azure-data-labs-modules) - A list of Terraform modules to build your Azure Data IaC templates. - [kbst/terraform-kubestack](https://github.com/kbst/terraform-kubestack) - Kubestack is a framework for Kubernetes platform engineering teams to define the entire cloud native stack in one Terraform code base and continuously evolve the platform safely through GitOps - [HariSekhon/Terraform](https://github.com/HariSekhon/Terraform) - Terraform templates for AWS / GCP / Azure / GitHub management - [thinktecture-labs/cloud-native-sample](https://github.com/thinktecture-labs/cloud-native-sample/tree/main/charts) - Sample application to demonstrate how to build, orchestrate, and automate a polyglot cloud-native application ================================================ FILE: docs/ids.md ================================================ # Ids ## 📕 Articles - [How to Generate Unique IDs in Distributed Systems: 6 Key Strategies](https://blog.devtrovert.com/p/how-to-generate-unique-ids-in-distributed) ⭐ - [Generating sortable Guids using NewId](https://andrewlock.net/generating-sortable-guids-using-newid/) - [Announcing Snowflake](https://blog.twitter.com/2010/announcing-snowflake) - [Using C# 9 records as strongly-typed ids](https://thomaslevesque.com/series/using-c%23-9-records-as-strongly-typed-ids/) - [Series: Using strongly-typed entity IDs to avoid primitive obsession](https://andrewlock.net/series/using-strongly-typed-entity-ids-to-avoid-primitive-obsession/) - [Strongly-typed Ids using C# Source Generators](https://www.meziantou.net/strongly-typed-ids-with-csharp-source-generators.htm) ## 📺 Videos - [Stop using IDs that don’t mean anything in .NET](https://www.youtube.com/watch?v=z4SB5BkQX7M) - [The effect of Random UUID on database performance](https://www.youtube.com/watch?v=OAOQ7U0XAi0) - [How Shopify’s engineering improved database writes by 50% with ULID](https://www.youtube.com/watch?v=f53-Iw_5ucA) ================================================ FILE: docs/messaging/async-api-documentation.md ================================================ # Async APIs Documentation ## 📕 Articles - [Understanding AsyncAPIs with a Practical Example](https://medium.com/event-driven-utopia/understanding-asyncapis-with-a-practical-example-ee2b4be221d8) - [AsyncAPI – Documentation of event- and message-driven architectures](https://blog.codecentric.de/en/2021/09/asyncapi-documentation-event-message-driven-architectures/) - [An introduction to the AsyncAPI specification](https://dev.to/eminetto/an-introduction-to-the-asyncapi-specification-4m6d) - [DOCUMENT YOUR EVENT-DRIVEN ARCHITECTURE](https://serverlessland.com/event-driven-architecture/visuals/document-event-driven-architectures) - [EventCatalog — The Missing Piece to Your Event-Driven Application](https://itnext.io/eventcatalog-the-missing-piece-to-your-event-driven-application-d74bc4386a6a) ⭐ ## 📺 Videos - [Design-First for Event Driven APIs with AsyncAPI](https://www.youtube.com/watch?v=jKSZfD66zKM) - [How AsyncAPI Can Enhance Your Developer Experience](https://www.youtube.com/watch?v=HUwV-Ql8oD4) ## 📦 Libraries - [asyncapi/spec](https://github.com/asyncapi/spec) - The AsyncAPI specification allows you to create machine-readable definitions of your asynchronous APIs. - [LEGO/AsyncAPI.NET](https://github.com/LEGO/AsyncAPI.NET) - The AsyncAPI.NET SDK contains a useful object model for AsyncAPI documents in .NET - [boyney123/eventcatalog](https://github.com/boyney123/eventcatalog) - Discover, Explore and Document your Event Driven Architectures powered by Markdown. ================================================ FILE: docs/messaging/change-data-capture.md ================================================ # Change Data Capture (CDC) ## 📕Articles - [Reliable Microservices Data Exchange With the Outbox Pattern](https://debezium.io/blog/2019/02/19/reliable-microservices-data-exchange-with-the-outbox-pattern/) ⭐ - [Change Data Capture (CDC) With Kafka® Connect and the Debezium Cassandra Connector (Part 1)](https://www.instaclustr.com/blog/change-data-capture-cdc-with-kafka-and-debezium/) - [Change Data Capture (CDC) With Kafka® Connect and the Debezium Cassandra Connector (Part 2)](https://www.instaclustr.com/blog/change-data-capture-cdc-with-kafka-connect-and-the-debezium-cassandra-connector-part-2/) - [Change Data Capture (CDC) With Kafka® Connect and the Debezium PostgreSQL® Source Connector](https://www.instaclustr.com/blog/change-data-capture-cdc-with-kafka-connect-and-the-debezium-postgresql-source-connector/) - [Capturing and Streaming Database Changes with Debezium and Apache Kafka (Part 1) – Theory](https://blogs.zeiss.com/digital-innovation/en/database-changes-part-1/) - [Capturing and Streaming Database Changes with Debezium and Apache Kafka (Part 2) – Example](https://blogs.zeiss.com/digital-innovation/en/database-changes-part-2/) - [A Gentle Introduction to Event-driven Change Data Capture](https://medium.com/event-driven-utopia/a-gentle-introduction-to-event-driven-change-data-capture-683297625f9b) - [Change Data Capture (CDC)](https://luminousmen.com/post/change-data-capture/) - [PostgreSQL Change Data Capture and Golang Sample Code](https://hackernoon.com/postgresql-change-data-capture-and-golang-sample-code) ## 📺 Videos - [What is Event-driven Change Data Capture Process?](https://www.youtube.com/watch?v=-irkDCmHhKk) - [Stream your PostgreSQL changes into Kafka with Debezium](https://www.youtube.com/watch?v=YZRHqRznO-o) ## 📦 Libraries - [debezium/debezium](https://github.com/debezium/debezium) - Change data capture for a variety of databases ## 🚀 Samples - [debezium/debezium-examples](https://github.com/debezium/debezium-examples) - Examples for running Debezium (Configuration, Docker Compose files etc.) - [ifsantana/NetArchSample](https://github.com/ifsantana/NetArchSample) - [joaofbantunes/DebeziumOutboxSample](https://github.com/joaofbantunes/DebeziumOutboxSample) - Tiny event driven sample application, using Debezium to help implement the outbox pattern - [seralaci/dotnet-microservices-data-exchange-with-outbox-pattern-debezium](https://github.com/seralaci/dotnet-microservices-data-exchange-with-outbox-pattern-debezium) - True Atomic Microservices Implementation with Debezium and Outbox Pattern to Ensure Data Consistency. - [Azure-Samples/azure-sql-db-change-stream-debezium](https://github.com/Azure-Samples/azure-sql-db-change-stream-debezium) - SQL Server Change Stream sample using Debezium - [suadev/microservices-change-data-capture-with-debezium](https://github.com/suadev/microservices-change-data-capture-with-debezium) - Microservices data exchange with change data capture and outbox pattern. - [arslanaybars/Ayb.Debezium.Ticket](https://github.com/arslanaybars/Ayb.Debezium.Ticket) - .NET framework based implementation of the Outbox Pattern using Apache Kafka and Debezium. ================================================ FILE: docs/messaging/kafka.md ================================================ # Kafka ## 📘 Resources - [Apache Kafka Official Website](https://kafka.apache.org/) - [Apache Kafka Documentation](https://kafka.apache.org/documentation/) - [Apache Kafka GitHub](https://github.com/apache/kafka) - [gentlydownthe WebSite](https://www.gentlydownthe.stream/) - [nayekabhishek1/awesome-kafka](https://github.com/nayekabhishek1/awesome-kafka) - A curated list about Apache Kafka - [infoslack/awesome-kafka](https://github.com/infoslack/awesome-kafka) - A list about Apache Kafka - [dttung2905/kafka-in-production](https://github.com/dttung2905/kafka-in-production) - Tech blogs & talks by companies that run Kafka in production ## 📕 Articles - [INTRODUCTION - Everything you need to know about Kafka in 10 minutes](https://kafka.apache.org/intro) - [Introduction to Kafka](https://docs.confluent.io/platform/current/kafka/introduction.html) - [Apache Kafka 101](https://developer.confluent.io/learn-kafka/apache-kafka/events/) - [Kafka in a Nutshell](https://sookocheff.com/post/kafka/kafka-in-a-nutshell/) - [Event-Driven Architecture with Apache Kafka for .NET Developers Part 1 - Event Producer](https://thecloudblog.net/post/event-driven-architecture-with-apache-kafka-for-net-developers-part-1-event-producer/) - [Event-Driven Architecture with Apache Kafka for .NET Developers Part 2 - Event Consumer](https://thecloudblog.net/post/event-driven-architecture-with-apache-kafka-for-.net-developers-part-2-event-consumer/) - [Event-Driven Architecture with Apache Kafka for .NET Developers Part 3 - Azure Event Hubs](https://thecloudblog.net/post/event-driven-architecture-with-apache-kafka-for-net-developers-part-3-azure-event-hubs/) - [Describing Kafka with AsyncAPI](https://dalelane.co.uk/blog/?p=4219) - [Building Reliable Reprocessing and Dead Letter Queues with Apache Kafka - Uber Engineering Blog](https://eng.uber.com/reliable-reprocessing/) - [Building Reliable Kafka Producers and Consumers in .NET](https://thecloudblog.net/post/building-reliable-kafka-producers-and-consumers-in-net/) - [Understanding Kafka Topic Partitions](https://medium.com/event-driven-utopia/understanding-kafka-topic-partitions-ae40f80552e8) - [Leader election and Sharding Practices at Wix microservices](https://medium.com/wix-engineering/leader-election-and-sharding-practices-at-wix-microservices-6e6b853e4852) - [Kafka Quick Start Guide](https://sookocheff.com/post/kafka/kafka-quick-start/) - [Using Apache Kafka with .NET](https://www.red-gate.com/simple-talk/development/dotnet-development/using-apache-kafka-with-net/) - [Setting up a Kafka test environment with Kafdrop](https://www.red-gate.com/simple-talk/development/dotnet-development/setting-up-a-kafka-test-environment-with-kafdrop/) - [Getting Started: Apache Kafka with .NET Core](https://codeopinion.com/getting-started-apache-kafka-with-net-core/) - [Kafka Listeners – Explained](https://www.confluent.io/blog/kafka-listeners-explained/) - [Real-Time Exactly-Once Ad Event Processing with Apache Flink, Kafka, and Pinot](https://eng.uber.com/real-time-exactly-once-ad-event-processing/) - [“The Metamorphosis” of communication with Kafka](https://blexin.com/en/blog-en/the-metamorphosis-of-communication-with-kafka/) - [Kafka and .NET - Part 1 - What is Kafka?](https://blog.simontimms.com/2021/12/09/2021-12-09-kafka-and-.net/) - [Deep dive into Apache Kafka storage internals: segments, rolling and retention](https://strimzi.io/blog/2021/12/17/kafka-segment-retention/) - [Decoupling Systems with Apache Kafka, Schema Registry and Avro](https://www.confluent.io/blog/decoupling-systems-with-apache-kafka-schema-registry-and-avro/) - [Building Kafka producers and consumers](https://engineering.chrobinson.com/dotnet-avro/guides/kafka/) - [Introduction to Schema Registry in Kafka](https://medium.com/slalom-technology/introduction-to-schema-registry-in-kafka-915ccf06b902) - [Why Avro for Kafka Data?](https://www.confluent.io/blog/avro-kafka-data/) - [Schema Registry Overview](https://docs.confluent.io/platform/current/schema-registry/index.html) - [Hands-on Kafka Streams in Scala](https://softwaremill.com/hands-on-kafka-streams-in-scala/) - [Using Apache Kafka for Real-Time Event Processing at New Relic](https://newrelic.com/blog/how-to-relic/apache-kafka-event-processing) - [Effective Strategies for Kafka Topic Partitioning](https://newrelic.com/blog/best-practices/effective-strategies-kafka-topic-partitioning) - [Kafka Connect Deep Dive – Converters and Serialization Explained](https://www.confluent.io/blog/kafka-connect-deep-dive-converters-serialization-explained/) - [Top 5 Things Every Apache Kafka Developer Should Know](https://www.confluent.io/en-gb/blog/5-things-every-kafka-developer-should-know/) - [Single-partition Kafka topics](https://mikemybytes.com/2021/01/11/single-partition-kafka-topics/) - [Everything You Need To Know About Kafka](https://betterprogramming.pub/everything-you-need-to-know-about-kafka-a83e2456d14c) - [In the land of the sizing, the one-partition Kafka topic is king](https://www.buildon.aws/posts/in-the-land-of-the-sizing-the-one-partition-kafka-topic-is-king/01-what-are-partitions/) - [How Wix manages Schemas for Kafka (and gRPC) used by 2000 microservices](https://medium.com/wix-engineering/how-wix-manages-schemas-for-kafka-and-grpc-used-by-2000-microservices-2117416ea17b) - [Enabling Seamless Kafka Async Queuing with Consumer Proxy](https://www.uber.com/en-PT/blog/kafka-async-queuing-with-consumer-proxy/) ## 📺 Videos - [Course | Apache Kafka® Fundamentals](https://www.youtube.com/playlist?list=PLa7VYi0yPIH2PelhRHoFR5iQgflg-y6JA) - [Apache Kafka® Tutorials | Kafka 101](https://www.youtube.com/playlist?list=PLa7VYi0yPIH0KbnJQcMv5N9iW8HkZHztH) - [Kafka Connect Tutorials | Kafka Connect 101](https://www.youtube.com/playlist?list=PLa7VYi0yPIH1MB2n2w8pMZguffCDu2L4Y) - [Streams API for Apache Kafka™ | Produced by Confluent](https://www.youtube.com/playlist?list=PLa7VYi0yPIH1vDclVOB49xUruBAWkOCZD) - [What is Kafka | Tutorial | Beginners Guide](https://www.youtube.com/watch?v=heR3I3Wxgro) - [Building Streaming Microservices with Apache Kafka - Tim Berglund](https://www.youtube.com/watch?v=mad84vBHYlY) - [Getting Started: Apache Kafka + .NET](https://www.youtube.com/watch?v=n_IQq3pze0s) - [Apache Kafka Crash Course](https://www.youtube.com/watch?v=R873BlNVUB4) - [Data Streaming for Microservices using Debezium (Gunnar Morling)](https://www.youtube.com/watch?v=NawsloOoFo0) - [Kafka Connect in Action: Elasticsearch](https://www.youtube.com/watch?v=Cq-2eGxOCc8) - [Exploring the Kafka Connect REST API](https://www.youtube.com/watch?v=1EenWEm-5dg) - [Learn Apache Kafka with Conduktor - Playlist - Conduktor](https://www.youtube.com/playlist?list=PLYmXYyXCMsfMMhiKPw4k1FF7KWxOEajsA) - [Kafka as a Platform: The Ecosystem from the Ground Up • Robin Moffatt • GOTO 2020](https://www.youtube.com/watch?v=qjTZ4UeJdoI) - [Kafka Connect - Playlist - Robin Moffatt](https://www.youtube.com/playlist?list=PL5T99fPsK7ppB_AbZhBhTyKHtHWZLWIJ8) - [Apache Kafka - 2022 Edition [.NET 6 Consumer and Producer, Docker containerized Kafka services]](https://www.youtube.com/watch?v=A4Y7z6wFRk0) - [ASP.NET Producer for Apache Kafka - 2022 Edition [Multiple partitions and ASP.NET Producer]](https://www.youtube.com/watch?v=FzufaOUdA10) - [Event-driven integration #5 - Quick intro to Apache Kafka [ASPF02O|E044]](https://www.youtube.com/watch?v=tUzCxZdKEr4) - [Event-driven integration #6 - Publishing events (feat. Apache Kafka) [ASPF02O|E045]](https://www.youtube.com/watch?v=T2Dy7cH486c) - [Building Scalable Real Time Event Processing with Kafka and Flink](https://doordash.engineering/2022/08/02/building-scalable-real-time-event-processing-with-kafka-and-flink/) - [Apache Kafka in 1 hour for C# Developers - Guilherme Ferreira - Copenhagen DevFest 2023](https://www.youtube.com/watch?v=E07CGvGVal8) - [Kafka for .NET Developers - Ian Cooper - NDC Oslo 2024](https://www.youtube.com/watch?v=tIZC70Swfwk) ## 📦 Libraries - [confluentinc/confluent-kafka-dotnet/](https://github.com/confluentinc/confluent-kafka-dotnet/) - Confluent's Apache Kafka .NET client - [edenhill/kcat](https://github.com/edenhill/kcat) - Generic command line non-JVM Apache Kafka producer and consumer - [Confluent.SchemaRegistry](https://www.nuget.org/packages/Confluent.SchemaRegistry/) - [provectus/kafka-ui](https://github.com/provectus/kafka-ui) - Open-Source Web GUI for Apache Kafka Management - [Farfetch/kafka-flow](https://github.com/Farfetch/kafka-flow) - KafkaFlow is a .NET framework to create Kafka based applications, simple to use and extend. - [Farfetch/kafka-flow-retry-extensions](https://github.com/Farfetch/kafka-flow-retry-extensions) - Kafka Flow Retry Patterns Extensions - [conduktor-ui](https://www.conduktor.io/conduktor-ui) - [obsidiandynamics/kafdrop](https://github.com/obsidiandynamics/kafdrop) - Kafka Web UI - [LGouellec/kafka-streams-dotnet](https://github.com/LGouellec/kafka-streams-dotnet) - .NET Stream Processing Library for Apache Kafka ## 🚀 Samples - [dcomartin/Kafka.Demo](https://github.com/dcomartin/Kafka.Demo) - [oskardudycz/kafka-connect](https://github.com/oskardudycz/kafka-connect) - [minhhungit/kafka-kraft-cluster-docker-compose](https://github.com/minhhungit/kafka-kraft-cluster-docker-compose) - workable kafka cluster with kraft mode using docker-compose ## 📚 Books - [Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale 2nd Edition](https://www.amazon.com/Kafka-Definitive-Real-Time-Stream-Processing/dp/1492043087/) - [Kafka Streams in Action: Real-time apps and microservices with the Kafka Streams API](https://www.amazon.com/Kafka-Streams-Action-Real-time-microservices/dp/1617294470/) ================================================ FILE: docs/messaging/messaging-patterns.md ================================================ # Messaging Patterns ## Resources - [Messaging Patterns - Enterprise Integration Patterns](https://www.enterpriseintegrationpatterns.com/patterns/messaging/Message.html) - [DDD and Messaging Architectures](https://verraes.net/2019/05/ddd-msg-arch/) - [Cloud Design Patterns - Microsoft Learn](https://learn.microsoft.com/en-us/azure/architecture/patterns/) - [clemensv/messaging](https://github.com/clemensv/messaging) - Resource collection for messaging and eventing ## Articles - [Combining the To-Do List and the Passage Of Time patterns for resilient business workflows](https://event-driven.io/en/to_do_list_and_passage_of_time_patterns_combined/) - [Patterns for Decoupling in Distributed Systems: Passage of Time Event](https://verraes.net/2019/05/patterns-for-decoupling-distsys-passage-of-time-event/) - [Eventsourcing: State from Events or Events as State?](https://verraes.net/2019/08/eventsourcing-state-from-events-vs-events-as-state/) - [Patterns for Decoupling in Distributed Systems: Domain Query](https://verraes.net/2019/05/patterns-for-decoupling-distsys-domain-query/) - [Patterns for Decoupling in Distributed Systems: Summary Event](https://verraes.net/2019/05/patterns-for-decoupling-distsys-summary-event/) - [Patterns for Decoupling in Distributed Systems: Completeness Guarantee](https://verraes.net/2019/05/patterns-for-decoupling-distsys-completeness-guarantee/) - [Patterns for Decoupling in Distributed Systems: Passage of Time Event](https://verraes.net/2019/05/patterns-for-decoupling-distsys-passage-of-time-event/) - [Patterns for Decoupling in Distributed Systems: Fat Event](https://verraes.net/2019/05/patterns-for-decoupling-distsys-fat-event/) - [Patterns for Decoupling in Distributed Systems: Explicit Public Events](https://verraes.net/2019/05/patterns-for-decoupling-distsys-explicit-public-events/) - [Patterns for Decoupling in Distributed Systems: Segregated Event Layers](https://verraes.net/2019/05/patterns-for-decoupling-distsys-segregated-event-layers/) - [Eventsourcing Patterns: Forgettable Payloads](https://verraes.net/2019/05/eventsourcing-patterns-forgettable-payloads/) - [Eventsourcing Patterns: Crypto-Shredding](https://verraes.net/2019/05/eventsourcing-patterns-throw-away-the-key/) - [Eventsourcing Patterns: Decision Tracking](https://verraes.net/2019/05/eventsourcing-patterns-decision-tracking/) - [Eventsourcing Patterns: Migration Events in a Ghost Context](https://verraes.net/2019/06/eventsourcing-patterns-migration-events-ghost-context/) - [Eventsourcing Patterns: Multi-temporal Events](https://verraes.net/2022/03/multi-temporal-events/) - [Messaging Patterns: Ephemeral Events](https://verraes.net/2019/05/messaging-patterns-ephemeral-events/) - [Messaging Patterns: Throttling](https://verraes.net/2019/05/messaging-patterns-throttling/) - [Messaging Patterns: Change Detection Events](https://verraes.net/2019/05/messaging-patterns-change-detection-events/) - [Messaging Patterns: Natural Language Message Names](https://verraes.net/2019/06/messaging-patterns-natural-language-message-names/) - [EventSourcing Testing Patterns](https://verraes.net/2023/05/eventsourcing-testing-patterns/) - [The To-Do List Pattern](https://blog.bittacklr.be/the-to-do-list-pattern.html) - [The Waiting List Pattern](https://blog.bittacklr.be/the-waiting-list-pattern.html) - [The Workflow Pattern](https://blog.bittacklr.be/the-workflow-pattern.html) - [Asynchronous Messaging Patterns](https://blogs.mulesoft.com/api-integration/patterns/asynchronous-messaging-patterns/) - [9 PROCESSING PATTERNS](https://www.messagehandler.net/patterns/) - [7 Message Metadata Patterns Every Developer Should Know](https://thehonestcoder.com/7-message-metadata-patterns/) ## Books - [Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions](https://www.amazon.com/o/asin/0321200683/ref=nosim/enterpriseint-20) ================================================ FILE: docs/messaging/messaging.md ================================================ # Messaging ## 📘 Resources - [DDD and Messaging Architectures](https://verraes.net/2019/05/ddd-msg-arch/) - [clemensv/messaging](https://github.com/clemensv/messaging) - Resource collection for messaging and eventing - [Messaging Playlist - CodeOpinion](https://www.youtube.com/playlist?list=PLThyvG1mlMzm2FyVpKDiU2c7VtrB2Zezg) - [Martin Kleppmann Yotube](https://www.youtube.com/channel/UClB4KPy5LkJj1t3SgYVtMOQ/videos) ## 📕 Articles - [Communication in a microservice architecture](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/communication-in-microservice-architecture) - [Asynchronous message-based communication](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/asynchronous-message-based-communication) - [Modular Monolith: Integration Styles](http://www.kamilgrzybek.com/tag/messaging/) - [Marrying RESTful HTTP with Asynchronous and Event-Driven Services](https://sookocheff.com/post/api/marrying-restful-http-with-asynchronous-design/) - [DDD and Messaging Architectures](https://verraes.net/2019/05/ddd-msg-arch/) - [Asynchronous Messaging Patterns](https://blogs.mulesoft.com/api-integration/patterns/asynchronous-messaging-patterns/) - [Message Properties](https://codeopinion.com/message-properties/) - [Message Naming Guidelines](https://codeopinion.com/message-naming-guidelines/) - [Organizing (Commands, Events & Handlers) in Microservices](https://codeopinion.com/organizing-commands-events-handlers-in-microservices/) - [REST APIs for Microservices? Beware!](https://codeopinion.com/rest-apis-for-microservices-beware/) - [Messaging Commands & Events Explained!](https://codeopinion.com/messaging-commands-events-explained/) - [Event Choreography & Orchestration (Sagas)](https://codeopinion.com/event-choreography-orchestration-sagas/) - [Outbox Pattern: Reliably Save State & Publish Events](https://codeopinion.com/outbox-pattern-reliably-save-state-publish-events/) - [Handling Duplicate Messages (Idempotent Consumers)](https://codeopinion.com/handling-duplicate-messages-idempotent-consumers/) - [Message-IDs for Handling Concurrency](https://codeopinion.com/message-ids-for-handling-concurrency/) - [CAP: Event Bus & Outbox Pattern](https://codeopinion.com/cap-event-bus-outbox-pattern/) - [Message Queue Overload from High Processing Latency](https://codeopinion.com/message-queue-overload-from-high-processing-latency/) - [Processing commands with Hangfire and MediatR](http://www.kamilgrzybek.com/design/processing-commands-with-hangfire-and-mediatr/) - [Using Hangfire and MediatR as a Message Dispatcher](https://codeopinion.com/using-hangfire-and-mediatr-as-a-message-dispatcher/) - [Idempotent Aggregates](https://codeopinion.com/idempotent-aggregates/) - [Identify Commands & Events](https://codeopinion.com/identify-commands-events/) - [Idempotent Commands](https://codeopinion.com/idempotent-commands/) - [Moving work Out-of-Process using Brighter and RabbitMQ](https://codeopinion.com/moving-work-out-of-process-using-brighter-and-rabbitmq/) - [Thin vs Fat Integration Events](https://codeopinion.com/thin-vs-fat-integration-events/) - [Events: Fat or Thin](https://codesimple.blog/2019/02/16/events-fat-or-thin/) - [Events on the Outside vs Events on the Inside](https://codesimple.blog/2021/03/14/events-on-the-outside-vs-events-on-the-inside/) - [Patterns for Decoupling in Distributed Systems: Fat Event](https://verraes.net/2019/05/patterns-for-decoupling-distsys-fat-event/) - [Message Sender: Who Sent the Command/Event?](https://codeopinion.com/message-sender-who-sent-the-command-event/) - [Why use DTOs (Data Transfer Objects)?](https://codeopinion.com/why-use-dtos-data-transfer-objects/) - [Event Versioning Guidelines](https://codeopinion.com/event-versioning-guidelines/) - [Fat vs thin domain events](https://adrian-philipp.com/notes/fat-vs-thin-domain-events) - [Putting your events on a diet](https://particular.net/blog/putting-your-events-on-a-diet) - [What do you mean by “Event-Driven”?](https://martinfowler.com/articles/201701-event-driven.html) - [Are CQRS commands part of the domain model?](https://enterprisecraftsmanship.com/posts/cqrs-commands-part-domain-model/) - [DTO vs Value Object vs POCO](https://enterprisecraftsmanship.com/posts/dto-vs-value-object-vs-poco/) - [Event Based Architecture: What do you mean by EVENT?](https://codeopinion.com/event-based-architecture-what-do-you-mean-by-event/) - [What's the difference between a command and an event?](https://www.eventstore.com/blog/whats-the-difference-between-a-command-and-an-event) - [Outbox, Inbox patterns and delivery guarantees explained](https://event-driven.io/en/outbox_inbox_patterns_and_delivery_guarantees_explained/) - [Distributed State — Challenges and Options](https://medium.com/swlh/distributed-state-management-80c8100bb563) - [Message Naming Conventions](https://jimmybogard.com/message-naming-conventions/) - [Building an Event Driven .NET Application: The Fundamentals](https://wrapt.dev/blog/building-an-event-driven-dotnet-application-the-fundamentals) - [Building an Event Driven .NET Application: Setting Up MassTransit and RabbitMQ](https://wrapt.dev/blog/building-an-event-driven-dotnet-application-setting-up-masstransit-and-rabbitmq) - [Kafka vs RabbitMQ vs AWS SNS/SQS: Which Broker to Choose?](https://www.aspecto.io/blog/kafka-vs-rabbitmq-vs-aws-sns-sqs-which-broker-to-choose/) - [Event Pitfalls (and How to Avoid Them)](https://dev.to/peholmst/event-pitfalls-and-how-to-avoid-them-4d31) - [Designing Domain Events](https://medium.com/casaone-engineering/designing-domain-events-5efc6e25da52) - [Competing Consumers Pattern for Scalability](https://codeopinion.com/competing-consumers-pattern-for-scalability/) - [Patterns for Decoupling in Distributed Systems: Explicit Public Events](http://verraes.net/2019/05/patterns-for-decoupling-distsys-explicit-public-events/) - [Event immutability and dealing with change](https://www.eventstore.com/blog/event-immutability-and-dealing-with-change) - [Transient fault handling](https://docs.microsoft.com/en-us/azure/architecture/best-practices/transient-faults) - [SHARING DATA BETWEEN MODULES IN MODULAR MONOLITH](https://dev.to/lukaszreszke/sharing-data-between-modules-in-modular-monolith-50on) - [Comparing Techniques for Communicating Between Services](https://ardalis.com/comparing-techniques-communicating-between-services/) - [Bus or Queue](https://ardalis.com/bus-or-queue/?utm_sq=gn4zxe3o0t) - [Improving Monolith's Availability](https://www.ledjonbehluli.com/posts/improving_monoliths_availability/) - [The Outbox Pattern in Event-Driven ASP.NET Core Microservice Architectures](https://itnext.io/the-outbox-pattern-in-event-driven-asp-net-core-microservice-architectures-10b8d9923885) - [Competing Consumers](https://www.enterpriseintegrationpatterns.com/patterns/messaging/CompetingConsumers.html) - [Competing Consumers pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/competing-consumers) - [REST vs Messaging for Microservices – Which One is Best?](https://solace.com/blog/experience-awesomeness-event-driven-microservices/) - [RPC vs. Messaging – which is faster?](https://particular.net/blog/rpc-vs-messaging-which-is-faster) - [Microservices patterns: synchronous vs asynchronous communication](https://greeeg.com/issues/microservices-patterns-synchronous-vs-asynchronous) - [Async request processing](https://rafaelldi.blog/posts/async-request-processing/) - [Event Feeds: Simple and reliable messaging infrastructure](https://www.erikheemskerk.nl/event-feeds/) - [What's the difference between a command and an event?](https://event-driven.io/en/whats_the_difference_between_event_and_command/) - [Events should be as small as possible, right?](https://event-driven.io/en/events_should_be_as_small_as_possible/) - [How to build a simple event pipeline](https://event-driven.io/en/how_to_build_simple_event_pipeline/) - [Wire Tap Enterprise Integration Pattern](https://www.baeldung.com/wiretap-pattern) - [Wire Tap](https://www.enterpriseintegrationpatterns.com/WireTap.html) - [Message Ordering in Pub/Sub or Queues](https://codeopinion.com/message-ordering-in-pub-sub-or-queues/) - [Mapping event type by convention](https://event-driven.io/en/how_to_map_event_type_by_convention/) - [Distributed systems evolution: message contracts](https://milestone.topics.it/2022/07/04/messages-evolution.html) - [Back to Basics: commands, events, and messages](https://milestone.topics.it/2023/05/25/back-to-basics-messages.html) - [Define messages as POCO, interfaces, or records. Does it really matter?](https://milestone.topics.it/2023/10/31/defining-messages.html) - [Internal and external events, or how to design event-driven API](https://event-driven.io/en/internal_external_events/) - [How Discord Stores Trillions of Messages](https://discord.com/blog/how-discord-stores-trillions-of-messages) ## 📺 Videos - [Handling Concurrency with Message-IDs | Event Driven Architecture](https://www.youtube.com/watch?v=wefvl2ohiQc) - [Message Naming Guidelines | Event Driven Architecture](https://www.youtube.com/watch?v=EmtOB2XexJI) - [Event Versioning Guidelines](https://www.youtube.com/watch?v=L8eH1XaRnPw&list=PLThyvG1mlMzm2FyVpKDiU2c7VtrB2Zezg) - [Organizing (Commands, Events & Handlers) in Microservices/SOA](https://www.youtube.com/watch?v=8j5ETvSSNpc) - [Service Oriented Architecture: Commands & Events Explained!](https://www.youtube.com/watch?v=oJiUjiWeesQ) - [Handling Duplicate Messages (Idempotent Consumers)](https://www.youtube.com/watch?v=xeBY8fCWfvU) - [Sagas: Event Choreography & Orchestration (NServiceBus)](https://www.youtube.com/watch?v=rO9BXsl4AMQ) - [CAP: Event Bus & Outbox Pattern](https://www.youtube.com/watch?v=dnhPzILvgeo&t=50s) - [Thin or Fat Events? Are your boundaries right?](https://www.youtube.com/watch?v=vDtK-ccQWkw) - [GOTO 2017 • The Many Meanings of Event-Driven Architecture • Martin Fowler](https://www.youtube.com/watch?v=STKCRSUsyP0) - [On .NET Live - Messaging Patterns for .NET Developers](https://www.youtube.com/watch?v=ef1DK76rseM) - [Competing Consumers Pattern for Scalability | Message Queues](https://www.youtube.com/watch?v=xv6Ljbq6me8) - [Event Driven Architecture for Real-Time Web](https://www.youtube.com/watch?v=Tu1GEIhkIqU) - [Learnings from Running 1000s of Production RabbitMQ Clusters • Lovisa Johansson • RabbitMQ Summit](https://www.youtube.com/watch?v=nxQrpLfX3rs) - [What is Event Driven Architecture? (EDA - part 1)](https://www.youtube.com/watch?v=DQ5Cbt8DQbM) - [The Saga Pattern in Microservices (EDA - part 2)](https://www.youtube.com/watch?v=C0rGwyJkDTU) - [GOTO 2019 • Temporal Modelling • Mathias Verraes](https://www.youtube.com/watch?v=KNqOWT0lOYY) - [Handling Failures in Message Driven Architecture](https://www.youtube.com/watch?v=SesEYHGhlLQ) - [Building a Mediator library in .NET from scratch](https://www.youtube.com/watch?v=4e83trumwcM) - [Message Driven Architecture to DECOUPLE a Monolith](https://www.youtube.com/watch?v=bxGkavGaEiM) - [Synchronous vs Messaging: When to use which?](https://www.youtube.com/watch?v=LMKVzguhFw4) - [Moving work Out-of-Process using Brighter and RabbitMQ](https://www.youtube.com/watch?v=kG4WLiZEAuc) - [Building a Request Pipeline for Separating Concerns with Pipes & Filters](https://www.youtube.com/watch?v=msXtN15qXOE) - [Distributed Messaging Patterns](https://www.youtube.com/watch?v=ZGloN_GOc9o) - [RPC vs Messaging: When to use which?](https://www.youtube.com/watch?v=LMKVzguhFw4) - [Beyond REST and RPC: Asynchronous Eventing and Messaging Patterns](https://www.youtube.com/watch?v=6zs-PhgfLU4) - [Modern .NET Messaging using MassTransit](https://www.youtube.com/watch?v=jQNQDLv7QmU) - [Was that message processed? Asynchronous Request-Response Pattern](https://www.youtube.com/watch?v=6UC6btG3wVI) - [Messaging Building Blocks: Commands & Events](https://www.youtube.com/watch?v=vw11J2BN7lY) - [Message delivery (at least-once, at most-once, exactly once?) | Messaging in distributed systems](https://www.youtube.com/watch?v=l6nLt4Km1cA) - [Message Ordering in Pub/Sub or Queue](https://www.youtube.com/watch?v=ILEb5LsSf5w) - [Avoiding a QUEUE Backlog Disaster with Backpressure & Flow Control](https://www.youtube.com/watch?v=BIGiLJJlE08) - [Avoiding Batch Jobs by a message in the FUTURE](https://www.youtube.com/watch?v=zWgqj2OEKX8) - [Wolverine: Your Next Messaging Library](https://www.youtube.com/watch?v=EGwepoGG0CM) - [Clean Message Bus Consumers with MediatR in .NET](https://www.youtube.com/watch?v=wnqBmv1RJNE) - [Using Open Telemetry with the MassTransit Test Harness?](https://www.youtube.com/watch?v=7PM9XUAAMtA) - [MassTransit Message Contract Sharing using NuGet](https://www.youtube.com/watch?v=5i_VQBYvTIQ) - [Versioning your MassTransit message contracts](https://www.youtube.com/watch?v=PNNxJthctgk) - [Consistency and Agreements in Distributed Systems - Jimmy Bogard - NDC London 2025](https://www.youtube.com/watch?v=FZ-1dbtQXYY) ## 📦 Libraries - [Enexure.MicroBus](https://github.com/Lavinski/Enexure.MicroBus) - MicroBus is a simple in process Mediator for .NET - [Foundatio](https://github.com/exceptionless/Foundatio) - A common interface with in memory, redis and azure implementations. - [Kledex](https://github.com/lucabriguglia/Kledex) - .NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing. - [MQTTnet](https://github.com/chkr1011/MQTTnet) - Tnet is a high performance .NET library for MQTT based communication. - [OpenCQRS](https://github.com/OpenCQRS/OpenCQRS) - .NET Core library for DDD, CQRS and Event Sourcing with Azure Service Bus integration. Supported database providers for the Command and the Event stores are: DocumentDB, MongoDB, SQL Server, MySQL, PostgreSQL and SQLite. - [Rebus](https://github.com/rebus-org/Rebus) - Simple and lean service bus implementation for .NET. - [RestBus](https://github.com/tenor/RestBus) - Messaging library for RabbitMq. - [tossit](https://github.com/turgayozgur/tossit) - Simple, easy to use library for distributed job/worker logic. Distributed messages handled by built in RabbitMQ implementation. - [Steeltoe](https://github.com/SteeltoeOSS/Steeltoe) - Steeltoe .NET Core Components: CircuitBreaker, Configuration, Connectors, Discovery, Logging, Management, and Security - [MetroBus](https://github.com/GokGokalp/MetroBus) - Lightweight messaging wrapper of - [Abp](https://github.com/abpframework/abp/tree/15589f4c1fbd6323cc80a5ce597b1ebf32d9eb07/framework/src/Volo.Abp.EventBus) - Open Source Web Application Framework for ASP.NET Core - [OpenSleigh](https://github.com/mizrael/OpenSleigh) - OpenSleigh is a Saga management library for .NET Core. - [knightbus](https://github.com/BookBeat/knightbus) - Fast multi-transport messaging framework - [SlimMessageBus](https://github.com/zarusz/SlimMessageBus) - Lightweight message bus interface for .NET (pub/sub and request-response) with transport plugins for popular message brokers. - [silverback](https://github.com/BEagle1984/silverback) - Silverback is a simple but feature-rich framework to build reactive/event-driven applications or microservices with .net core. - [Obvs](https://github.com/christopherread/Obvs) - An observable microservice bus library for .NET, that wraps the underlying message transports in simple Rx based interfaces. - [Platibus](https://github.com/sweetlandj/Platibus) - Decentralized asynchronous messaging framework - [EventBus](https://github.com/jacqueskang/EventBus) - A .NET Core ultra lightweight in-memory event bus implementation. - [Enbiso.NLib](https://github.com/enbiso/Enbiso.NLib) - .Net Standard Libraries for Microservices - [eventbus](https://github.com/tinglesoftware/eventbus) - A simple Event Bus abstraction layer for working with events in .NET. - [AzureFromTheTrenches.Commanding](https://github.com/JamesRandall/AzureFromTheTrenches.Commanding) - A configuration based commanding and mediator framework that supports command dispatch and execution in-process, over HTTP or over Azure Storage Queues. Written to .NET Standard 2.0 and supports many popular runtimes including .NET Core and .NET 4.6.x. - [Brighter](https://github.com/BrighterCommand/Brighter) - Command Dispatcher, Processor, and Distributed Task Queue - [Darker](https://github.com/BrighterCommand/Darker) - The query-side counterpart of Brighter - [MassTransit](https://github.com/MassTransit/MassTransit) - Distributed Application Framework for .NET - [ViennaNET](https://github.com/Raiffeisen-DGTL/ViennaNET) - Framework for quickly creating enterprise microservices on .NET Core - [MemBus](https://github.com/flq/MemBus/tree/master/MemBus) - Pure In-Memory Publish/Subscribe .NET Bus - [Cysharp/MagicOnion](https://github.com/Cysharp/MagicOnion) - Unified Realtime/API framework for .NET platform and Unity. - [eventflow/EventFlow](https://github.com/eventflow/EventFlow) - Async/await first CQRS+ES and DDD framework for .NET - [dasiths/SimpleMediator](https://github.com/dasiths/SimpleMediator) - A .NET/C# implementation of the mediator pattern with support for queries, commands and events - [mayuanyang/Mediator.Net](https://github.com/mayuanyang/Mediator.Net) - A simple mediator for .Net for sending command, publishing event and request response with pipelines supported - [FoundatioFx/Foundatio](https://github.com/FoundatioFx/Foundatio) - Pluggable foundation blocks for building distributed apps. - [AsynkronIT/protoactor-dotnet](https://github.com/AsynkronIT/protoactor-dotnet) - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin - [Abc-Arbitrage/Zebus](https://github.com/Abc-Arbitrage/Zebus) - A lightweight Peer to Peer Service Bus - [Shriek-Projects/shriek-fx](https://github.com/Shriek-Projects/shriek-fx) - An easy-to-use rapid development framework developed on the basis of.NET Core 2.0, following the constraints of domain Driven Design (DDD) specifications, combined with the CQRS architecture to provide the infrastructure for event-driven, event backtracking, responsiveness, and more. - [daxnet/apworks-core](https://github.com/daxnet/apworks-core) - Apworks framework supporting .NET Core - [nats-io/nats.net](https://github.com/nats-io/nats.net) - The official C# Client for NATS - [zeromq/netmq](https://github.com/zeromq/netmq) - A 100% native C# implementation of ZeroMQ for .NET - [zeromq/clrzmq4](https://github.com/zeromq/clrzmq4) - ZeroMQ C# namespace (.NET and mono, Windows, Linux and MacOSX, x86 and amd64) - [ThreeDotsLabs/watermill](https://github.com/ThreeDotsLabs/watermill) - Building event-driven applications the easy way in Go. - [Cysharp/MessagePipe](https://github.com/Cysharp/MessagePipe) - High performance in-memory/distributed messaging pipeline for .NET and Unity. - [cfrenzel/Eventfully](https://github.com/cfrenzel/Eventfully) - Lightweight Reliable Messaging Framework using Outbox Pattern / EFCore / AzureServiceBus - [daniellittledev/Enexure.MicroBus](https://github.com/daniellittledev/Enexure.MicroBus) - MicroBus is a simple in process Mediator for .NET - [simplesoft-pt/Mediator](https://github.com/simplesoft-pt/Mediator) - Small .NET library that helps with the implementation of mediator pattern for commands, events and queries - [gautema/CQRSlite](https://github.com/gautema/CQRSlite) - A lightweight framework to help creating CQRS and Eventsourcing applications in C# - [martinothamar/Mediator](https://github.com/martinothamar/Mediator) - A high performance implementation of Mediator pattern in .NET using source generators. - [AlphaYu/Adnc](https://github.com/AlphaYu/Adnc) - The microservice framework is also suitable for the development of monolithic architecture systems. It supports the classic three-tier and DDD architecture development model, and integrates a series of mainstream and stable microservice supporting technology stacks. A framework with front-end and back-end separation. The front-end is based on Vue and the back-end is built on .Net 5.0. - [Im5tu/OpenMessage](https://github.com/Im5tu/OpenMessage) - Receive messages from multiple sources using a centralised delivery pipeline - [SorenZ/Alamut.Kafka](https://github.com/SorenZ/Alamut.Kafka) - An opinionated approach to use Apache Kafka in Dotnet - [revoframework/Revo](https://github.com/revoframework/Revo) - Event Sourcing, CQRS and DDD framework for C#/.NET Core. - [MesutAtasoy/Joker.Packages](https://github.com/MesutAtasoy/Joker.Packages) - [oskardudycz/EventSourcing.NetCore/event-pipelines](https://github.com/oskardudycz/EventSourcing.NetCore/tree/samples/event-pipelines/Sample/EventPipelines) - [GDATASoftwareAG/motornet](https://github.com/GDATASoftwareAG/motornet) - Motor.NET is a microservice framework based on Microsoft.Extensions.Hosting - [litenova/LiteBus](https://github.com/litenova/LiteBus) - An easy-to-use and ambitious in-process mediator to implement CQS with minimum reflection usage and streamable query support. - [NHadi/Dermayon](https://github.com/NHadi/Dermayon) - Dermayon is Library for supporting build large application,distributed application, scalable, microservices, cqrs, event sourcing, including generic ef repository pattern with unit of work, generic mongo repository pattern with unit of work, kafka, etc - [cloudnative-netcore/netcorekit](https://github.com/cloudnative-netcore/netcorekit) - A crafted toolkit for building cloud-native apps on the .NET platform - [lucabriguglia/OpenCQRS](https://github.com/lucabriguglia/OpenCQRS) - .NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing. - [Eventuous/eventuous](https://github.com/Eventuous/eventuous) - Minimalistic Event Sourcing library for .NET - [christophe-mommer/CQELight](https://github.com/christophe-mommer/CQELight) - [Bullabs/Qitar](https://github.com/Bullabs/Qitar) - Domain Driven Design oriented application framework. - [yang-xiaodong/Savorboard.CAP.InMemoryMessageQueue](https://github.com/yang-xiaodong/Savorboard.CAP.InMemoryMessageQueue) - In-Memory message queue for CAP - [osstotalsoft/nbb](https://github.com/osstotalsoft/nbb) - [liuhll/silky](https://github.com/liuhll/silky) - The Silky framework is designed to help developers quickly build a microservice development framework through simple code and configuration under the .net platform. - [JasperFx/wolverine](https://github.com/JasperFx/wolverine) - Next Generation .NET Command and Message Bus - [boyney123/eventcatalog](https://github.com/boyney123/eventcatalog) - Discover, Explore and Document your Event Driven Architectures powered by Markdown. - [EasyDesk/easydesk-clean-architecture](https://github.com/EasyDesk/easydesk-clean-architecture) - A microservice framework based on the Clean Architecture and the Domain Driven Design. - [dotnet/aspire](https://github.com/dotnet/aspire) - .NET Aspire is an opinionated, cloud ready stack for building observable, production ready, distributed applications ## 📚 Books - [Enterprise Integration Patterns](https://amazon.com/o/asin/0321200683/ref=nosim/enterpriseint-20) - [Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/) - [Making Sense of Stream Processing](https://www.goodreads.com/book/show/29598815-making-sense-of-stream-processing) - [Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing](https://www.amazon.com/Streaming-Systems-Where-Large-Scale-Processing/dp/1491983876) - [Designing Event-Driven Systems](https://www.confluent.io/designing-event-driven-systems/) - [Building Event-Driven Microservices: Leveraging Organizational Data at Scale](https://www.amazon.com/Building-Event-Driven-Microservices-Leveraging-Organizational/dp/1492057894) - [Practical Event-Driven Microservices Architecture: Building Sustainable and Highly Scalable Event-Driven Microservices](https://www.amazon.com/Practical-Event-Driven-Microservices-Architecture-Sustainable/dp/1484274679/) ================================================ FILE: docs/messaging/nats.md ================================================ # NATS ## 📘 Resources - [Official NATS Website](https://nats.io/) - [NATS Documents](https://docs.nats.io/) - [NATS Github](https://github.com/nats-io) ## 📺 Videos - [How to use NATS and .NET Core for building distributed systems - Part 1](https://www.youtube.com/watch?v=VPHGgJiQUHw) - [How to use NATS and .NET Core for building distributed systems - Part 2](https://www.youtube.com/watch?v=2-KdyI1bC_s) ## 📦 Libraries - [nats-io/nats.net](https://github.com/nats-io/nats.net) - The official C# Client for NATS - [nats-io/stan.net](https://github.com/nats-io/stan.net) - The official NATS .NET C# Streaming Client - [danielwertheim/mynatsclient](https://github.com/danielwertheim/mynatsclient) - C# .NET and .NET Core client for NATS - [KualiCo/nats-streaming-console](https://github.com/KualiCo/nats-streaming-console) - A web console for Nats Streaming Server ## 🚀 Samples - [edwinvw/nats-demos](https://github.com/edwinvw/nats-demos) - This repo contains the code for the demos that I use during talks I give about NATS and NATS Streaming. ================================================ FILE: docs/messaging/rabbitmq.md ================================================ # RabbitMQ ## 📕 Articles - [RabbitMQ Introduction](https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html) ⭐ - [RabitMQ Work Queues(using the .NET Client)](https://www.rabbitmq.com/tutorials/tutorial-two-dotnet.html) ⭐ - [RabbitMQ Publish/Subscribe](https://www.rabbitmq.com/tutorials/tutorial-three-dotnet.html) ⭐ - [RabbitMQ Routing](https://www.rabbitmq.com/tutorials/tutorial-four-dotnet.html) ⭐ - [RabbitMQ Topics](https://www.rabbitmq.com/tutorials/tutorial-five-dotnet.html) ⭐ - [RabbitMQ Remote procedure call (RPC)](https://www.rabbitmq.com/tutorials/tutorial-six-dotnet.html) ⭐ - [RabbitMQ Publisher Confirms](https://www.rabbitmq.com/tutorials/tutorial-seven-dotnet.html) ⭐ - [Consumer Acknowledgements and Publisher Confirms](https://www.rabbitmq.com/confirms.html) ⭐ - [Alternate Exchanges](https://www.rabbitmq.com/ae.html) ⭐ - [Consumer Prefetch](https://www.rabbitmq.com/consumer-prefetch.html) ⭐ - [Time-To-Live and Expiration](https://www.rabbitmq.com/ttl.html) ⭐ - [Dead Letter Exchanges](https://www.rabbitmq.com/dlx.html) ⭐ - [AMQP 0-9-1 Model Explained](https://www.rabbitmq.com/tutorials/amqp-concepts.html) ⭐ - [RabbitMQ URI Specification](https://www.rabbitmq.com/uri-spec.html) - [Compatibility and Conformance - Classes from the AMQP specification](https://www.rabbitmq.com/specification.html) - [AMQP 0-9-1 Complete Reference Guide](https://www.rabbitmq.com/amqp-0-9-1-reference.html) - [Management Plugin - RabbitMQ Http Apis](https://www.rabbitmq.com/management.html) - [Management Command Line Tool](https://www.rabbitmq.com/management-cli.html) - [RabbitMQ HTTP API](https://www.rabbitmq.com/management.html#http-api) - [RabbitMQ HTTP API reference](https://rawcdn.githack.com/rabbitmq/rabbitmq-server/v3.9.13/deps/rabbitmq_management/priv/www/api/index.html) - [.NET/C# Client API Guide](https://www.rabbitmq.com/dotnet-api-guide.html) - [Part 1: RabbitMQ for beginners - What is RabbitMQ?](https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html) - [Part 2.2: Getting started with RabbitMQ and Node.js](https://www.cloudamqp.com/blog/part2-2-rabbitmq-for-beginners_example-and-sample-code-node-js.html) - [CloudAMQP with .NET Getting started](https://www.cloudamqp.com/docs/dotnet.html) - [Introduction using in .NET](https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html) - [Introduction to RabbitMQ](https://www.tutlane.com/tutorial/rabbitmq/introduction-to-rabbitmq) - [RabbitMQ Use cases: Explaining message queues and when to use them](https://www.cloudamqp.com/blog/rabbitmq-use-cases-explaining-message-queues-and-when-to-use-them.html) - [When to use RabbitMQ or Apache Kafka](https://www.cloudamqp.com/blog/when-to-use-rabbitmq-or-apache-kafka.html) - [when rabbitmq delete message from queue?](https://stackoverflow.com/questions/32737824/when-rabbitmq-delete-message-from-queue) - [Decoupling the communication with RabbitMQ](https://blexin.com/en/blog-en/decoupling-the-communication-with-rabbitmq/) - [High availability with RabbitMQ](https://blexin.com/en/blog-en/high-availability-with-rabbitmq/) - [Routing Topologies for Performance and Scalability with RabbitMQ](https://spring.io/blog/2011/04/01/routing-topologies-for-performance-and-scalability-with-rabbitmq/) ⭐ - [Messaging with RabbitMQ and .NET review part 1: foundations and terminology](https://dotnetcodr.com/2016/08/02/messaging-with-rabbitmq-and-net-review-part-1-foundations-and-terminology/) - [Messaging with RabbitMQ and .NET review part 2: installation and setup](https://dotnetcodr.com/2016/08/03/messaging-with-rabbitmq-and-net-review-part-2-installation-and-setup/) - [Messaging with RabbitMQ and .NET review part 3: the .NET client and some initial code](https://dotnetcodr.com/2016/08/05/messaging-with-rabbitmq-and-net-review-part-3-the-net-client-and-some-initial-code/) - [Messaging with RabbitMQ and .NET review part 4: one way messaging with a basic consumer](https://dotnetcodr.com/2016/08/08/messaging-with-rabbitmq-and-net-review-part-4-one-way-messaging-with-a-basic-consumer/) - [Messaging with RabbitMQ and .NET review part 5: one way messaging with an event based consumer](https://dotnetcodr.com/2016/08/10/messaging-with-rabbitmq-and-net-review-part-5-one-way-messaging-with-an-event-based-consumer/) - [Messaging with RabbitMQ and .NET review part 6: the fanout exchange type](https://dotnetcodr.com/2016/08/15/messaging-with-rabbitmq-and-net-review-part-6-the-fanout-exchange-type/) - [Messaging with RabbitMQ and .NET review part 7: two way messaging](https://dotnetcodr.com/2016/08/18/messaging-with-rabbitmq-and-net-review-part-7-two-way-messaging/) - [Messaging with RabbitMQ and .NET review part 8: routing and topics](https://dotnetcodr.com/2016/08/25/messaging-with-rabbitmq-and-net-review-part-8-routing-and-topics/) - [Messaging with RabbitMQ and .NET review part 9: headers](https://dotnetcodr.com/2016/08/29/messaging-with-rabbitmq-and-net-review-part-9-headers/) - [Messaging with RabbitMQ and .NET review part 10: scatter/gather](https://dotnetcodr.com/2016/09/01/messaging-with-rabbitmq-and-net-review-part-10-scattergather/) - [Messaging with RabbitMQ and .NET review part 11: various other topics](https://dotnetcodr.com/2016/09/05/messaging-with-rabbitmq-and-net-review-part-11-various-other-topics/) - [RabbitMQ in .NET: data serialisation I](https://dotnetcodr.com/2014/06/05/rabbitmq-in-net-data-serialisation/) - [RabbitMQ in .NET: data serialisation II](https://dotnetcodr.com/2014/06/09/rabbitmq-in-net-data-serialisation-ii/) - [RabbitMQ in .NET: handling large messages](https://dotnetcodr.com/2014/06/12/rabbitmq-in-net-handling-large-messages/) - [RabbitMQ in .NET C#: basic error handling in Receiver](https://dotnetcodr.com/2014/06/16/rabbitmq-in-net-c-basic-error-handling-in-receiver/) - [RabbitMQ in .NET C#: more complex error handling in the Receiver](https://dotnetcodr.com/2014/06/19/rabbitmq-in-net-c-more-complex-error-handling-in-the-receiver/) - [Can we have multiple subscribers for RabbitMQ queue?](https://stackoverflow.com/questions/42351130/can-we-have-multiple-subscribers-for-rabbitmq-queue) - [publisher-confirms](https://www.rabbitmq.com/confirms.html#publisher-confirms) - [(Consumer) Delivery Acknowledgements](https://www.rabbitmq.com/confirms.html#consumer-acknowledgements) - [Introducing Publisher Confirms](https://blog.rabbitmq.com/posts/2011/02/introducing-publisher-confirms) - [Publisher confirms with RabbitMQ and C#](https://rianjs.net/2013/12/publisher-confirms-with-rabbitmq-and-c-sharp) - [Exchange to Exchange binding in RabbitMQ](https://jstobigdata.com/rabbitmq/exchange-to-exchange-binding-in-rabbitmq/) - [RabbitMQ Exchange Types](https://medium.com/trendyol-tech/rabbitmq-exchange-types-d7e1f51ec825) - [Wire Tap Enterprise Integration Pattern](https://www.baeldung.com/wiretap-pattern) - [A C# .NET Client Proxy For The RabbitMQ Management API](http://mikehadlow.blogspot.com/2012/11/a-c-net-client-proxy-for-rabbitmq.html) - [CLEANING UP QUEUES AND EXCHANGES ON RABBITMQ](https://www.planetgeek.ch/2015/08/16/cleaning-up-queues-and-exchanges-on-rabbitmq/) - [CLEANUP CODE FOR CLEANING UP QUEUES AND EXCHANGES ON RABBITMQ](https://www.planetgeek.ch/2015/08/31/cleanup-code-for-cleaning-up-queues-and-exchanges-on-rabbitmq/) - [Dead Letter Exchanges](https://www.rabbitmq.com/dlx.html) - [FAQ: When and how to use the RabbitMQ Dead Letter Exchange](https://www.cloudamqp.com/blog/when-and-how-to-use-the-rabbitmq-dead-letter-exchange.html) ⭐ - [Native AMQP 1.0](https://www.rabbitmq.com/blog/2024/08/05/native-amqp) - [Setting Up a RabbitMQ Cluster](https://levelup.gitconnected.com/setting-up-rabbitmq-cluster-c247d61385ed) - [Clustering Guide](https://www.rabbitmq.com/docs/clustering) ## 📺 Videos - [The best online training tool for RabbitMQ](https://training.cloudamqp.com/) - [What is RabbitMQ?](https://youtu.be/7rkeORD4jSw) - [RabbitMQ : Message Queues for beginners](https://youtu.be/hfUIWe1tK8E) - [RabbitMQ Explained - Use Cases](https://youtu.be/oq1fOr6Ryws) - [RabbitMQ Explained - Exchanges](https://youtu.be/o8eU5WiO8fw) - [Evolutionary history of the RabbitMQ .NET Client towards concurrency - Daniel Marbach](https://www.youtube.com/watch?v=t0lT8eRPyuc) - [Understand RabbitMQ [AMQP Protocol] - RabbitMQ Beginner to Advanced Tutorial - Part 01](https://www.youtube.com/watch?v=ui005IK8QZ8) - [Fanout Exchange in RabbitMQ [AMQP Protocol] - RabbitMQ Beginner to Advanced Tutorial - Part 02](https://www.youtube.com/watch?v=z-32VSl9t3s) - [RabbitMQ C# [RabbitMQ .Net] Implementation - RabbitMQ Beginner to Advanced Tutorial - Part 03](https://www.youtube.com/watch?v=3erQZTV52CI) - [RabbitMQ Best Practice | Webinar with CloudAMQP](https://www.youtube.com/watch?v=HzPOQsMWrGQ) - [How to Use RabbitMQ in ASP.NET Core](https://code-maze.com/aspnetcore-rabbitmq/) - [RabbitMQ- Tutorial 3 - Core Concepts](https://www.youtube.com/watch?v=iIjCjUKwzZw) - [RabbitMQ- Tutorial 5 - AMQP for RabbitMQ (Part 1)](https://www.youtube.com/watch?v=1QPZbPOUmMk) - [RabbitMQ- Tutorial 6 - AMQP for RabbitMQ (Part 2)](https://www.youtube.com/watch?v=mXBAjzns6KA) - [RabbitMQ- Tutorial 7 - Competing Consumers](https://www.youtube.com/watch?v=hi8DjlcbN4A) - [RabbitMQ- Tutorial 8b - Competing Consumers C# Implementation](https://www.youtube.com/watch?v=LBOfQiaGyxQ) - [RabbitMQ- Tutorial 9 - Pub/Sub](https://www.youtube.com/watch?v=rgTW-cserPo) - [RabbitMQ- Tutorial 11- Routing](https://www.youtube.com/watch?v=56IyW2OWllA) - [RabbitMQ- Tutorial 12b - Routing Implementation in C#](https://www.youtube.com/watch?v=JYzhdGvSqrY) - [RabbitMQ- Tutorial 15 - Exchange-Exchange Routing, Headers Exchange and Consistent Hashing Exchange](https://www.youtube.com/watch?v=a3dxzvqDhDg) - [RabbitMQ- Tutorial 16b - Ex-Ex Routing, Headers Exchange and Consistent Hashing Exchange in C#](https://www.youtube.com/watch?v=dDrmSNCEsS0) - [RabbitMQ- Tutorial 17 - Publishing Options](https://www.youtube.com/watch?v=2hQm4IPM8sM) - [RabbitMQ- Tutorial 18 - Alternate Exchanges, Dead Letter Exchanges, Message Acks and Queue Options](https://www.youtube.com/watch?v=M7Mg7izbi7w) - [RabbitMQ- Tutorial 19b - Alt Exchanges, Dead Letter, Message Acks and Queue Options in C#](https://www.youtube.com/watch?v=JUqcxIkpteg) ## 📚 Books - [The Optimal RabbitMQ Guide](https://www.cloudamqp.com/rabbitmq_ebook.html) - [RabbitMQ in Action](https://www.manning.com/books/rabbitmq-in-action) - [RabbitMQ in Depth](https://www.manning.com/books/rabbitmq-in-depth) - [RabbitMQ Essentials - Second Edition](https://www.packtpub.com/product/rabbitmq-essentials-second-edition/9781789131666) ## 📦 Libraries - [rabbitmq/rabbitmq-dotnet-client](https://github.com/rabbitmq/rabbitmq-dotnet-client) - RabbitMQ .NET client for .NET Standard 2.0+ and .NET 4.6.1+ - [rabbitmq/rabbitmq-stream-dotnet-client](https://github.com/rabbitmq/rabbitmq-stream-dotnet-client) - RabbitMQ client for the stream protocol - [thinkco/rabbitmq-httpclient-dotnet](https://github.com/thinkco/rabbitmq-httpclient-dotnet) - RabbitMQ Management HTTP Client for .netCore - [EasyNetQ/EasyNetQ.Management.Client](https://github.com/EasyNetQ/EasyNetQ.Management.Client) - EasyNetQ.Management.Client is a .NET client for the RabbitMQ RESTful management API - [EasyNetQ/EasyNetQ](https://github.com/EasyNetQ/EasyNetQ) - An easy to use .NET API for RabbitMQ - [pardahlman/RawRabbit](https://github.com/pardahlman/RawRabbit) - A modern .NET framework for communication over RabbitMq - [MassTransit/MassTransit/](https://github.com/MassTransit/MassTransit/) - Distributed Application Framework for .NET - [JasperFx/wolverine/](https://github.com/JasperFx/wolverine/) - Next Generation .NET Command and Message Bus - [rabbitmq/rabbitmq-amqp-dotnet-client](https://github.com/rabbitmq/rabbitmq-amqp-dotnet-client) ## 🚀 Samples - [hrabbitmq/rabbitmq-tutorials/dotnet-6](https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/dotnet-6) - [hgmauri/sample-rawrabbit-mediatr](https://github.com/hgmauri/sample-rawrabbit-mediatr) - Example of using RabbitMQ with RawRabbit and MediatR in .NET 5 - [delaneybrian/jumpstartCS-rabbitmq-csharp](https://github.com/delaneybrian/jumpstartCS-rabbitmq-csharp) - [serkodev/rabbitmq-cluster-docker](https://github.com/serkodev/rabbitmq-cluster-docker) - 1-click setup RabbitMQ Cluster with Docker Compose ================================================ FILE: docs/messaging/zeromq.md ================================================ # ZeroMQ ## 📘 Resources - [ZeroMQ Offical Website](https://zeromq.org/) - [ZeroMQ Documentation](https://zeromq.org/get-started/) - [ZGuide](https://zguide.zeromq.org/docs) - [ZeroMQ Github](https://github.com/zeromq) - [NetMQ](https://netmq.readthedocs.io/en/latest/) ## 📺 Videos - [On .NET Live - Distributed applications with ZeroMQ](https://youtu.be/jIT8r2r5kV8) - [Distributed Systems with ZeroMQ](https://youtu.be/Zyox_fNFXIk) ## 🚀 Samples - [NetMQ Samples](https://github.com/NetMQ/Samples) ================================================ FILE: docs/micro-frontend.md ================================================ # Micro-Frontend ## 📝 Articles - [Everything You Need to Know About Micro Frontends](https://newsletter.systemdesign.one/p/micro-frontends) - [What’s the Difference Between a Component and a Micro-Frontend?](https://blog.santoshshinde.com/whats-the-difference-between-a-component-and-a-micro-frontend-43aefd0af062) - [Micro Frontends](https://martinfowler.com/articles/micro-frontends.html) By [Cam Jackson](https://twitter.com/thecamjackson) - [What are Micro Frontends?](https://micro-frontends.org/) - [Micro Frontends Architecture Patterns Series' Articles](https://dev.to/okmttdhr/series/10191) - [Module Federation—Federated Application Architectures](https://rangle.io/blog/module-federation-federated-application-architectures/) - [FrontEnd Architecture Medium List](https://medium.com/@santosh-shinde/list/frontend-architecture-185260977829) - [Webpack 5 Module Federation: A game-changer in JavaScript architecture](https://indepth.dev/posts/1173/webpack-5-module-federation-a-game-changer-in-javascript-architecture) - [Microfrontends in the Monorepo](https://javascript-conference.com/blog/microfrontends-in-the-monorepo/) - [Build Micro Frontends with bit.dev](https://blog.bitsrc.io/how-we-build-micro-front-ends-d3eeeac0acfc) - [Micro-Frontend Mindmaps](https://github.com/santoshshinde2012/micro-frontends-mindmaps) - [11 Micro Frontends Frameworks You Should Know](https://itnext.io/11-micro-frontends-frameworks-you-should-know-b66913b9cd20) - [How to Build a Micro Frontend with Webpack's Module Federation Plugin](https://www.bitovi.com/blog/how-to-build-a-micro-frontend-architecture-with-angular) - [Module Federation and Angular Service Workers (PWA)](https://www.bitovi.com/blog/module-federation-and-angular-service-workers-pwa) - [4 Practical Ways to Build Micro Frontends](https://codeburst.io/4-practical-ways-to-build-micro-frontends-4dc4f0b8a921) - [Micro Frontends for Mobile with Ionic Portals](https://ionic.io/resources/articles/micro-frontends-for-mobile-with-ionic-portals) - [Micro-Frontend Architecture In The Harness Software Delivery Platform](https://harness.io/blog/continuous-delivery/micro-frontends-architecture/?utm_source=linkedinpost&utm_id=pavan) - [State of frontend 2022](https://tsh.io/state-of-frontend/) - [Sharing Components in a Micro-Frontend Architecture](https://medium.com/sap-cic/sharing-components-in-a-micro-frontend-architecture-965641e20c7c) - [4 Micro-Frontend Anti-Patterns](https://blog.santoshshinde.com/four-micro-frontend-anti-patterns-58aaa9fe19d5) ## 📹 Videos - [Micro-Frontends: What, why and how](https://www.youtube.com/watch?v=w58aZjACETQ) - [Micro-Frontends Course - Beginner to Expert](https://www.youtube.com/watch?v=lKKsjpH09dU) - [Micro-frontends: A microservice approach to the modern web](https://www.youtube.com/watch?v=ftBc8w-lwmY) - [Micro Frontend Architecture - Luca Mezzalira, DAZN](https://www.youtube.com/watch?v=BuRB3djraeM) - [What Are Micro-Frontends & How to Use Them • Luca Mezzalira & Lucas Dohmen • GOTO 2022](https://www.youtube.com/watch?v=-thWgobMW_I) - [Scaling your projects with Micro-frontends - talk by Luca Mezzalira](https://www.youtube.com/watch?v=9q5gTmKYQuw) - [Micro-Frontends anti-patterns - Luca Mezzalira, AWS | Craft Conference 2022](https://www.youtube.com/watch?v=EvD-gFX6kN0) - [Micro-Frontends with Module Federation: Beyond the Basics | Manfred Steyer| EnterpriseNG 2021](https://www.youtube.com/watch?v=8peHqzO7oqE) ## 📚 Books - [Building Micro-Frontends By Luca Mezzalira - August 2021](https://www.oreilly.com/library/view/building-micro-frontends/9781492082989/) - [Micro Frontends in Action By Michael Geers- August 2020](https://www.manning.com/books/micro-frontends-in-action) - [The Art of Micro Frontends By Florian Rappl - June 2021](https://www.packtpub.com/product/the-art-of-micro-frontends/9781800563568) ================================================ FILE: docs/microservices/api-gateway/ambassador.md ================================================ # Ambassador ## 📕 Articles ## 📺 Videos ================================================ FILE: docs/microservices/api-gateway/api-gateway.md ================================================ # API Gateway ## 📕 Articles - [Pattern: API Gateway / Backends for Frontends](https://microservices.io/patterns/apigateway.html) - [Gateway Aggregation Pattern](https://medium.com/design-microservices-architecture-with-patterns/gateway-aggregation-pattern-9ff92e1771d0) - [Microservice Service Discovery: API Gateway or Service Mesh?](https://www.getambassador.io/blog/microservices-discovery-api-gateway-vs-service-mesh) - [Service mesh vs. API gateway](https://www.solo.io/topics/service-mesh/service-mesh-vs-api-gateway/) - [Do I Need an API Gateway if I Use a Service Mesh?](https://blog.christianposta.com/microservices/do-i-need-an-api-gateway-if-i-have-a-service-mesh/) - [Service Mesh vs API Gateway](https://medium.com/microservices-in-practice/service-mesh-vs-api-gateway-a6d814b9bf56) ## 📺 Videos - [Build an API Gateway with Envoy and use with .NET Core APIs](https://www.youtube.com/watch?v=UsoH5cqE1OA) ## 📦 Libraries - [VeritasSoftware/AspNetCore.ApiGateway](https://github.com/VeritasSoftware/AspNetCore.ApiGateway) - Asp Net Core Api Gateway Framework ================================================ FILE: docs/microservices/api-gateway/kong.md ================================================ # Kong ## 📘 Resources - [Kong Docs](https://docs.konghq.com) ## 📕 Articles - [API Gateway and Microservices using Kong and dotnet core in docker](https://dev.to/rramname/api-gateway-and-microservices-using-kong-and-dotnet-core-in-docker-3khh) ## 📺 Videos - [API Gateway Pattern & Kong in a Microservices World](https://www.youtube.com/watch?v=OUUiS28hZuw) - [Kong Gateway for Beginners: Adding a Service, Route and Plugins](https://www.youtube.com/watch?v=OUUiS28hZuw&t=74s) ================================================ FILE: docs/microservices/api-gateway/ocelot.md ================================================ # Ocelot ## 📘 Resources - [Ocelot Docs](https://ocelot.readthedocs.io/en/latest/introduction/bigpicture.html) ## 📕 Articles - [Implement API Gateways with Ocelot](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/implement-api-gateways-with-ocelot) - [Microservices API Gateways — Ocelot for .NET Core + Video](https://medium.com/hypertrends/microservices-api-gateways-ocelot-for-net-core-video-8bbd4ed3be8f) - [Building Ocelot API Gateway Microservices with ASP.NET Core and Docker Container](https://medium.com/aspnetrun/building-ocelot-api-gateway-microservices-with-asp-net-core-and-docker-container-13f96026e86c) - [Implementing an API Gateway in ASP.NET Core with Ocelot](https://auth0.com/blog/implementing-api-gateway-in-aspnet-core-with-ocelot/) - [Part 1: API Gateway in a Nutshell](https://pogsdotnet.blogspot.com/2018/08/api-gateway-in-nutshell.html) - [Part 2: Building Simple API Gateways with Ocelot.](https://pogsdotnet.blogspot.com/2018/08/building-simple-api-gateways-with.html) - [Part 3: API Response Aggregation using Ocelot](https://www.pogsdotnet.com/2018/09/api-gateway-response-aggregation-with.html) - [Part 4: API Defense using Rate Limiting and Ocelot.](http://www.pogsdotnet.com/2018/09/defending-microservices-using-rate.html) - [Part 5: Containerizing API Gateways](http://www.pogsdotnet.com/2018/09/containerizing-aspnet-core-api-gateways.html) ## 🚀 Samples - [madslundt/NetCoreMicroservicesSample](https://github.com/madslundt/NetCoreMicroservicesSample) - [allanchua101/ocelot-api-response-aggregation](https://github.com/allanchua101/ocelot-api-response-aggregation) - [allanchua101/ocelot-compose](https://github.com/allanchua101/ocelot-compose) - [allanchua101/ocelot-api-gateway](https://github.com/allanchua101/ocelot-api-gateway) ================================================ FILE: docs/microservices/communication.md ================================================ # Communication & Data Consistency ## 📕 Articles - [Interprocess Communication in Microservices](https://vishnuch.tech/interprocess-communication-in-microservices) - [Implementing event-based communication between microservices (integration events)](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/integration-event-based-microservice-communications) - [Asynchronous message-based communication](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/asynchronous-message-based-communication) - [Communication in a microservice architecture](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/communication-in-microservice-architecture) - [A Reference Architecture for Responsive Asynchronous Task Execution](https://medium.com/event-driven-utopia/a-reference-architecture-for-responsive-asynchronous-task-execution-783bd2a1ed8b) - [Data Consistency in Microservices Architecture](https://medium.com/garantibbva-teknoloji/data-consistency-in-microservices-architecture-5c67e0f65256) - [How microservices communicate with each other](https://harshmatharu.com/blog/how-microservices-communicate-with-each-other) ## 📺 Videos - [Jimmy Bogard - Effective Microservice Communication and Conversation Patterns](https://www.youtube.com/watch?v=SuMF89Dc5XY) - [MICROSERVICES ARCHITECTURE | INTER MICROSERVICES COMMUNICATION | PART - 7](https://www.youtube.com/watch?v=552Zf6ZE6GE) - [Managing Data in Microservices](https://www.youtube.com/watch?v=E8-e-3fRHBw) - [Data in Microservices](https://www.youtube.com/watch?v=31AD6Nobt1o) - [7 Database Patterns for Microservices Architecture](https://www.youtube.com/watch?v=a_XMsSNdUQA) - [The hardest part of microservices is your data](https://www.youtube.com/watch?v=MrV0DqTqpFU) - [Data Consistency in Microservices Architecture (Grygoriy Gonchar)](https://www.youtube.com/watch?v=CFdPDfXy6Y0) - [Data Design and Modeling for Microservices](https://www.youtube.com/watch?v=KPtLbSEFe6c) - [GOTO 2017 • Effective Microservices in a Data-Centric World • Randy Shoup](https://www.youtube.com/watch?v=whi0T1a4cWU) - [GOTO 2018 • 5 Reasons to use Reactive Programming if you are not eBay • Grygoriy Gonchar](https://www.youtube.com/watch?v=DIQ9aNkjKZ8) - [Should Each Microservice Have Its Own Database? by Dmitry Belyaev](https://www.youtube.com/watch?v=A62GpUmO9q0) ================================================ FILE: docs/microservices/composite-ui.md ================================================ # Composite UIs ## 📕 Articles - [Composite UIs for Microservices: Vertical Slice APIs](https://jimmybogard.com/composite-uis-for-microservices-vertical-slice-apis/) - [Composite UIs for Microservices - A Primer](https://jimmybogard.com/composite-uis-for-microservices-a-primer/) - [Composite UIs for Microservices - Composition options](https://jimmybogard.com/composite-uis-for-microservices-composition-options/) - [Composite UIs for Microservices - Client Composition](https://jimmybogard.com/composite-uis-for-microservices-client-composition/) - [Composite UIs for Microservices - Server Composition](https://jimmybogard.com/composite-uis-for-microservices-server-composition/) - [Composite UIs for Microservices - Data Composition](https://jimmybogard.com/composite-uis-for-microservices-data-composition/) - [ViewModel Composition](https://milestone.topics.it/series/view-model-composition.html) ## 📺 Videos - [The HIDDEN Challenge of Microservices: UI Composition](https://www.youtube.com/watch?v=ILbjKR1FXoc) ## 📦 Libraries - [ServiceComposer/ServiceComposer.AspNetCore](https://github.com/ServiceComposer/ServiceComposer.AspNetCore) - ServiceComposer, a ViewModel Composition API Gateway ## 🚀 Samples - [mauroservienti/designing-a-ui-for-microservices-demos/](https://github.com/mauroservienti/designing-a-ui-for-microservices-demos/) - Demos and sample for my "Designing a UI for Microservices" talk ================================================ FILE: docs/microservices/microservices.md ================================================ # Microservices ## 📘 Resources - [.NET Microservices Architecture Guidance](https://dotnet.microsoft.com/learn/aspnet/microservices-architecture) - [Awesome Microservices .NET Core](https://github.com/mjebrahimi/Awesome-Microservices-NetCore) - - [.NET Microservices: Architecture for Containerized .NET Applications](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/) - [Cloud-Native learning resources for .NET developers](https://devblogs.microsoft.com/dotnet/cloud-native-learning-resources-for-net-developers/) - [mfornos/awesome-microservices](https://github.com/mfornos/awesome-microservices) - [Start Building .NET Microservices Today, Step by Step](https://dotnetmicroservices.com/) - [Sairyss/distributed-systems-topics](https://github.com/Sairyss/distributed-systems-topics) - Topics and resources related to distributed systems, system design, microservices, scalability and performance, etc - [donnemartin/system-design-primer](https://github.com/donnemartin/system-design-primer) - Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - [davidetaibi/Microservices_Project_List](https://github.com/davidetaibi/Microservices_Project_List) - A curated List of project that migrated to microservices ## 📕 Articles - [Microservices - Martin Fowler](https://martinfowler.com/articles/microservices.html) - [Design a microservice-oriented application](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/microservice-application-design) - [Microservice Series - From Zero to Hero](https://www.programmingwithwolfgang.com/microservice-series-from-zero-to-hero) - [Creating a simple data-driven CRUD microservice](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/data-driven-crud-microservice) - [Microservices architecture: What the gurus say about it](https://herbertograca.com/2017/01/26/microservices-architecture/) - [Microservices architecture style](https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices) - [Securing Microservices with IdentityServer4, OAuth2 and OpenID Connect fronted by Ocelot API Gateway](https://medium.com/aspnetrun/securing-microservices-with-identityserver4-with-oauth2-and-openid-connect-fronted-by-ocelot-api-49ea44a0cf9e) - [Saga Pattern: how to manage distributed transactions with microservices](https://www.cncf.io/blog/2021/02/12/saga-pattern-how-to-manage-distributed-transactions-with-microservices) - [Use NoSQL databases as a persistence infrastructure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/nosql-database-persistence-infrastructure) - [When to use the microservice architecture: part 1 - the need to deliver software rapidly, frequently, and reliably](https://chrisrichardson.net/post/microservices/2020/02/18/why-microservices-part-1.html) - [Why microservices: part 2 - the need for sustainable development](https://chrisrichardson.net/post/microservices/2020/03/30/why-microservices-part-2.html) - [Why microservices - part 3: two thirds of the success triangle - process and organization](https://chrisrichardson.net/post/microservices/2020/04/11/why-microservices-part-3.html) - [Why microservices - part 4: the last third of the success triangle: architectural requirements for rapid, frequent, reliable and sustainable development](https://chrisrichardson.net/post/microservices/2020/05/21/why-microservices-part-4.html) - [When to use the microservice architecture: part 5 - the monolithic architecture and rapid, frequent, reliable and sustainable software delivery](https://chrisrichardson.net/post/microservices/2021/02/14/why-microservices-part-5-monolith.html) - [A Microservices implementation journey — Part 1](https://koukia.ca/a-microservices-implementation-journey-part-1-9f6471fe917) - [Microservices and Docker with .Net Core and Azure Service Fabric - Part One](https://elvanydev.com/Microservices-part1/) - [Microservices and Docker with .Net Core and Azure Service Fabric - Part two](http://elvanydev.com/Microservices-part2/) - [Microservices and Docker with .Net Core and Azure Service Fabric - Part three](http://elvanydev.com/Microservices-part3/) - [Microservices and Docker with .Net Core and Azure Service Fabric - Part four](http://elvanydev.com/Microservices-part4/) - [What are Microservices? Advantages and Disadvantages of Microservices Architecture](https://www.dotnettricks.com/learn/microservices/architecture-example-advantages) - [Microservices Architecture on .NET with applying CQRS, Clean Architecture and Event-Driven Communication](https://medium.com/aspnetrun/microservices-architecture-on-net-3b4865eea03f) - [Best Practices for Building a Microservice Architecture](https://www.vinaysahni.com/best-practices-for-building-a-microservice-architecture) - [Building microservices through Event Driven Architecture part1 : application specific business rules](https://logcorner.com/building-microservices-through-event-driven-architecture-part1-application-specific-business-rules/) - [A Design Analysis of Cloud-based Microservices Architecture at Netflix](https://medium.com/swlh/a-design-analysis-of-cloud-based-microservices-architecture-at-netflix-98836b2da45f) - [Microservices and Docker with .Net Core and Azure Service Fabric - Part One](http://elvanydev.com/Microservices-part1/) - [Microservices and Docker with .Net Core and Azure Service Fabric - Part two](http://elvanydev.com/Microservices-part2/) - [Microservices and Docker with .Net Core and Azure Service Fabric - Part three](http://elvanydev.com/Microservices-part3/) - [Microservices and Docker with .Net Core and Azure Service Fabric - Part four](http://elvanydev.com/Microservices-part4/) - [How to Build an Event-Driven ASP.NET Core Microservice Architecture](https://itnext.io/how-to-build-an-event-driven-asp-net-core-microservice-architecture-e0ef2976f33f) - [The Outbox Pattern in Event-Driven ASP.NET Core Microservice Architectures](https://itnext.io/the-outbox-pattern-in-event-driven-asp-net-core-microservice-architectures-10b8d9923885) - [Why using Microservices or Monolith can be just a detail?](https://threedots.tech/post/microservices-or-monolith-its-detail/) - [Implementing Nanoservices in ASP.NET Core](https://auth0.com/blog/implementing-nanoservices-in-aspnet-core/) - [10 Microservices Best Practices for the Optimal Architecture Design](https://medium.com/capital-one-tech/10-microservices-best-practices-for-the-optimal-architecture-design-capital-one-de16abf2a232) - [Introduction to DDD Lite: When microservices in Go are not enough](https://threedots.tech/post/ddd-lite-in-go-introduction/) - [How to make Dapr client works well with Refit and RestEase in 5 minutes](https://dev.to/thangchung/how-to-make-dapr-client-works-well-with-refit-and-restease-40m) - [Debugging Dapr application using Tye tool](https://dev.to/thangchung/debugging-dapr-application-using-tye-tool-1djb) - [Monolith or Microservices? Neither, Combine Both With Integrated Microservices](https://itnext.io/monolith-or-microservices-neither-combine-both-with-integrated-microservices-5265594c3d59) - [Prioritizing and Microservices](https://ardalis.com/prioritizing-and-microservices/) - [How to build a NodeJS cinema microservice and deploy it with docker](https://medium.com/@cramirez92/build-a-nodejs-cinema-microservice-and-deploying-it-with-docker-part-1-7e28e25bfa8b) - [Your Top .NET Microservices Questions Answered](https://devblogs.microsoft.com/aspnet/your-top-dotnet-microservices-questions-answered/) - [Querying Microservices with the CQRS and Materialized View Pattern](https://medium.com/event-driven-utopia/querying-microservices-with-the-cqrs-and-materialized-view-pattern-bdb8b17f95d1) - [How to Cache Aggregated Data with Redis and Lua Scripts for a Scaled Microservice Architecture](https://itnext.io/how-to-cache-aggregated-data-with-redis-and-lua-scripts-for-a-scaled-microservice-architecture-2b791289e911) - [Patterns to know before migrating your monolith to microservices](https://levelup.gitconnected.com/patterns-to-know-before-migrating-your-monolith-to-microservices-72fcbcc7846e) - [Why duplication isn’t always a bad thing in micro-services](https://www.michalbialecki.com/2019/02/08/why-duplication-isnt-always-a-bad-thing-in-micro-services/) - [10 Microservices Best Practices for the Optimal Architecture Design](https://www.capitalone.com/tech/software-engineering/10-microservices-best-practices/) - [How to Avoid Coupling in Microservices Design](https://medium.com/capital-one-tech/how-to-avoid-coupling-in-microservices-design-b241d77ae233) - [How to break a Monolith into Microservices](https://martinfowler.com/articles/break-monolith-into-microservices.html) - [Identify domain-model boundaries for each microservice](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/identify-microservice-domain-model-boundaries) - [A Design Analysis of Cloud-based Microservices Architecture at Netflix](https://medium.com/swlh/a-design-analysis-of-cloud-based-microservices-architecture-at-netflix-98836b2da45f) - [Monolithic to Microservices Architecture with Patterns & Best Practices](https://medium.com/design-microservices-architecture-with-patterns/monolithic-to-microservices-architecture-with-patterns-best-practices-a768272797b2) - [Microservices Database Management Patterns and Principles](https://medium.com/design-microservices-architecture-with-patterns/microservices-database-management-patterns-and-principles-9121e25619f1) - [How to Choose a Database for Microservices — CAP Theorem](https://medium.com/design-microservices-architecture-with-patterns/how-to-choose-a-database-for-microservices-cap-theorem-d1585bf40ecd) - [Service Aggregator Pattern](https://medium.com/design-microservices-architecture-with-patterns/service-aggregator-pattern-e87561a47ac6) - [Event Sourcing Pattern in Microservices Architectures](https://medium.com/design-microservices-architecture-with-patterns/event-sourcing-pattern-in-microservices-architectures-e72bf0fc9274) - [CQRS Design Pattern in Microservices Architectures](https://medium.com/design-microservices-architecture-with-patterns/cqrs-design-pattern-in-microservices-architectures-5d41e359768c) - [Materialized View Pattern](https://medium.com/design-microservices-architecture-with-patterns/materialized-view-pattern-f29ea249f8f8) - [Microservices Deployments with Containers and Orchestrators](https://medium.com/design-microservices-architecture-with-patterns/microservices-deployments-with-containers-and-orchestrators-c693292997f9) - [Outbox Pattern for Microservices Architectures](https://medium.com/design-microservices-architecture-with-patterns/outbox-pattern-for-microservices-architectures-1b8648dfaa27) - [Saga Pattern for Microservices Distributed Transactions](https://medium.com/design-microservices-architecture-with-patterns/saga-pattern-for-microservices-distributed-transactions-7e95d0613345) - [Microservices Distributed Transactions](https://medium.com/design-microservices-architecture-with-patterns/microservices-distributed-transactions-a71a996e5db8) - [Database Sharding Pattern for Scaling Microservices Database Architecture](https://medium.com/design-microservices-architecture-with-patterns/database-sharding-pattern-for-scaling-microservices-database-architecture-2077a556078) - [Service Registry Pattern](https://medium.com/design-microservices-architecture-with-patterns/service-registry-pattern-75f9c4e50d09) - [API Gateway Pattern](https://medium.com/design-microservices-architecture-with-patterns/api-gateway-pattern-8ed0ddfce9df) - [Gateway Aggregation Pattern](https://medium.com/design-microservices-architecture-with-patterns/gateway-aggregation-pattern-9ff92e1771d0) - [Microservice Communications between Backend Internal Microservices](https://medium.com/design-microservices-architecture-with-patterns/microservice-communications-between-backend-internal-microservices-9029d4b0acd8) - [Backends for Frontends Pattern — BFF](https://medium.com/design-microservices-architecture-with-patterns/backends-for-frontends-pattern-bff-7ccd9182c6a1) - [Microservices Data Management](https://medium.com/design-microservices-architecture-with-patterns/microservices-data-management-3235893b7c29) - [Microservices Data Management when performing Queries between Services](https://medium.com/design-microservices-architecture-with-patterns/microservices-data-management-when-performing-queries-between-services-42896a733567) - [Microservices Architecture](https://medium.com/design-microservices-architecture-with-patterns/microservices-architecture-2bec9da7d42a) - [Scaling Databases in Microservices Architecture with Horizontal, Vertical, and Functional Data Partitioning](https://medium.com/design-microservices-architecture-with-patterns/scaling-databases-in-microservices-architecture-with-horizontal-vertical-and-functional-data-537c5aea41d6) - [Microservices Distributed Caching](https://medium.com/design-microservices-architecture-with-patterns/microservices-distributed-caching-76828817e41b) - [REST vs Messaging for Microservices – Which One is Best?](https://solace.com/blog/experience-awesomeness-event-driven-microservices/) - [Microservices patterns: synchronous vs asynchronous communication](https://greeeg.com/issues/microservices-patterns-synchronous-vs-asynchronous) - [Integers vs GUIDs - The Great Primary Key Debate](https://exceptionnotfound.net/integers-vs-guids-the-great-primary-key-debate/) - [INT or GUID for your primary key, what your choice ?](https://medium.com/@quocnguyen2501/int-or-guid-for-your-primary-key-what-your-choice-927f40c9dc08) - [UUID or GUID as Primary Keys? Be Careful!](https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439) - [Orchestration vs choreography for microservice workflows](https://www.ben-morris.com/orchestration-vs-choreography-for-microservice-workflows/) - [Generating unique IDs in a distributed environment at high scale.](https://www.callicoder.com/distributed-unique-id-sequence-number-generator/) - [SCALABLE MICROSERVICES ARCHITECTURE WITH .NET MADE EASY – A TUTORIAL](https://www.endava.com/en/blog/Engineering/2022/Scalable-Microservices-Architecture-with-NET-Made-Easy-a-Tutorial) - [How (not) to cut microservices](https://event-driven.io/en/how_to_cut_microservices/) - [Data Consistency in Microservices Architecture](https://medium.com/garantibbva-teknoloji/data-consistency-in-microservices-architecture-5c67e0f65256) - [Event Sourcing and Microservices](https://zimarev.com/blog/event-sourcing/microservices/) - [Generating sortable Guids using NewId](https://andrewlock.net/generating-sortable-guids-using-newid/) - [Release Management for Microservices](https://semaphoreci.com/blog/release-management-microservices) - [Microservices to Async Processing Migration at Scale](https://www.infoq.com/articles/microservices-async-migration/) - [ViewModel Composition](https://milestone.topics.it/series/view-model-composition.html) - [Improving Microservices Availability](https://www.ledjonbehluli.com/posts/improving_microservices_availability/) - [The Challenge of Microservices: UI Composition](https://codeopinion.com/the-challenge-of-microservices-ui-composition/) ## 📺 Videos - [Microservices Architectural Pattern](https://www.youtube.com/watch?v=8BPDv038oMI&t=0s) - [Microservices Architecture and Implementation on .NET 5](https://www.udemy.com/course/microservices-architecture-and-implementation-on-dotnet/?couponCode=FA24745CC57592AB612A) - [Designing Loosely Coupled Microservices](https://skillsmatter.com/skillscasts/14926-designing-loosely-coupled-microservices) - [Architectural Patterns for High-Performance Microservices in Kubernetes](https://www.youtube.com/watch?v=vpU04uGz19U&ab_channel=Hazelcast) - [GOTO 2020 • When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler](https://www.youtube.com/watch?v=GBTdnfD6s5Q&t=825s) - [GOTO 2021 • The Problem with Microservices • Dave Farley](https://www.youtube.com/watch?v=V3NQt5KP7EM) - [GOTO 2019 • 3 Common Pitfalls in Microservice Integration & How to Avoid Them • Bernd Rücker](https://www.youtube.com/watch?v=7uvK4WInq6k) - [GOTO 2015 • Challenges in Implementing Microservices • Fred George](https://www.youtube.com/watch?v=yPf5MfOZPY0) - [GOTO 2020 • Beyond Microservices: Streams, State and Scalability • Gwen Shapira](https://www.youtube.com/watch?v=H0LUi51aCP8) - [GOTO 2020 • Why GraphQL Between Microservices Is the Worst & Best Idea • Uri Goldshtein](https://www.youtube.com/watch?v=T0zpPO7Ub_s) - [GOTO 2019 • Event-Driven Microservices, the Sense, the Non-sense and a Way Forward • Allard Buijze](https://www.youtube.com/watch?v=jrbWIS7BH70) - [GOTO 2021 • Scale, Flow and Microservices • James Lewis](https://www.youtube.com/watch?v=yJHvMabxVYU&list=PLEx5khR4g7PI89_ZS_wz5suqCoqFgv-gO) - [From a distributed monolith to a microservices solution - Jan de Vries](https://www.youtube.com/watch?v=0H68V2BzutA) - [Microservices for system design interview preparation Playlist - Tech Dummies Narendra L](https://www.youtube.com/playlist?list=PLkQkbY7JNJuDqCFncFdTzGm6cRYCF-kZO) - [Bounded Contexts, Microservices, and Everything In Between - Vladik Khononov - KanDDDinsky 2018](https://www.youtube.com/watch?v=dlnu5pSsg7k) - [Creating MicroService with .Net 5](https://www.youtube.com/watch?v=1gPz0G6GZCU) - [How to design and code a scaleable solution (from monolith to microservices)](https://www.youtube.com/watch?v=rzjy2DDPwio) - [Building Reactive Microservices with .NET Core - Kevin Hoffman, Capital One](https://www.youtube.com/watch?v=bGdar01KNzg) - ["Reactive Microsystems - The Evolution of Microservices at Scale," with Jonas Bonér](https://www.youtube.com/watch?v=3hMtjPcU248) - [Does CAP Theorem apply to Microservices?](https://www.youtube.com/watch?v=PgHMtMmSn9s) - [Let's Learn .NET - Microservices](https://www.youtube.com/watch?v=sstOXCQ-EG0) - [8 Practical Use Cases of Change Data Capture](https://medium.com/event-driven-utopia/8-practical-use-cases-of-change-data-capture-8f059da4c3b7) - [Mastering Chaos - A Netflix Guide to Microservices](https://www.youtube.com/watch?v=CZ3wIuvmHeM) - [Compositional UIs - the Microservices Last Mile - Jimmy Bogard](https://www.youtube.com/watch?v=gjtFGx0yX5M) - [Avoiding Microservice Megadisasters - Jimmy Bogard](https://www.youtube.com/watch?v=gfh-VCTwMw8) - [Why programming language performance in microservices isn't (that) important](https://www.youtube.com/watch?v=g1UQf3TOBn8) - [.NET Microservices – Full Course](https://www.youtube.com/c/binarythistle/videos) - [Build Your First Microservice with .NET | Microservices Explained](https://www.youtube.com/watch?v=DFDbh1c9zyE) - [ASP.NET Community Standup - .NET Podcasts App Overview!](https://www.youtube.com/watch?v=TkIh_mmEw7c) - [Design Microservice Architectures the Right Way](https://www.youtube.com/watch?v=j6ow-UemzBc) - [.NET Microservices Basics Course](https://www.youtube.com/watch?v=ByYyk8eMG6c) - [Building Event-Driven Microservices with Event Sourcing and CQRS - Lidan Hifi](https://www.youtube.com/watch?v=XWTrcBqXi6s) - [Light and Dark Side of the Event-Driven Design • Oskar Dudycz • Devoxx Poland 2021](https://www.youtube.com/watch?v=0pYmuk0-N_4) - [Microservices gets it WRONG defining Service Boundaries](https://www.youtube.com/watch?v=Uc7SLJbKAGo) - [Microservices with .NET 6 and AWS Tutorial - Part 1](https://www.youtube.com/watch?v=ioa5RolwPKQ) - [Microservices with .NET 6 and AWS Tutorial - Part 2](https://www.youtube.com/watch?v=4hZ5ujckDXE) - [Microservices with .NET 6 and AWS Tutorial - Part 3](https://www.youtube.com/watch?v=mCLHw3GTHOo) - [Microservices with .NET 6 and AWS Tutorial - Part 4](https://www.youtube.com/watch?v=wXNDuF4J6Uc) - [Shared Database between Services? Maybe!](https://www.youtube.com/watch?v=vwTwkPUcwNM) - [Microservices explained - the What, Why and How?](https://www.youtube.com/watch?v=rv4LlmLmVWk) - [Wolverine: Your Next Messaging Library](https://www.youtube.com/watch?v=EGwepoGG0CM) - [Mauro Servienti - Designing a UI for Microservices](https://www.youtube.com/watch?v=AxWGAiIg7_0) - [The HIDDEN Challenge of Microservices: UI Composition](https://www.youtube.com/watch?v=ILbjKR1FXoc) - [Mapping event type by convention](https://event-driven.io/en/how_to_map_event_type_by_convention/) - [Should Each Microservice Have Its Own Database? by Dmitry Belyaev](https://www.youtube.com/watch?v=A62GpUmO9q0) - [Don’t Build a Distributed Monolith - Jonathan "J." Tower - NDC London 2023](https://www.youtube.com/watch?v=p2GlRToY5HI) - [Top 5 techniques for building the worst microservice system ever - William Brander - NDC London 2023](https://www.youtube.com/watch?v=88_LUw1Wwe4) ## 📦 Libraries - [rebus-org/Rebus](https://github.com/rebus-org/Rebus) - 🚌 Simple and lean service bus implementation for .NET - [dotnetcore/CAP](https://github.com/dotnetcore/CAP) - Distributed transaction solution in micro-service base on eventually consistency, also an eventbus with Outbox pattern - [MassTransit/MassTransit](https://github.com/MassTransit/MassTransit) - Distributed Application Framework for .NET - [BrighterCommand/Brighter](https://github.com/BrighterCommand/Brighter) - Command Dispatcher, Processor, and Distributed Task Queue - [microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy) - YARP: A toolkit for developing high-performance HTTP reverse proxy applications. - [abpframework/abp](https://github.com/abpframework/abp) - Open Source Web Application Framework for ASP.NET Core - [lucabriguglia/Kledex](https://github.com/lucabriguglia/Kledex) - .NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing. - [gigya/microdot](https://github.com/gigya/microdot) - Microdot: An open source .NET microservices framework - [SteeltoeOSS/Steeltoe](https://github.com/SteeltoeOSS/Steeltoe) - Steeltoe .NET Core Components: CircuitBreaker, Configuration, Connectors, Discovery, Logging, Management, and Security - [FoundatioFx/Foundatio](https://github.com/FoundatioFx/Foundatio) - Pluggable foundation blocks for building distributed apps. - [enbiso/Enbiso.NLib](https://github.com/enbiso/Enbiso.NLib) - .Net Standard Libraries for Microservices - [BookBeat/knightbus](https://github.com/BookBeat/knightbus) - Fast multi-transport messaging framework - [anliang11/surging](https://github.com/fanliang11/surging) - Surging is a micro-service engine that provides a lightweight, high-performance, modular RPC request pipeline. The service engine supports http, TCP, WS,Grpc, Thrift,Mqtt, UDP, and DNS protocols. It uses ZooKeeper and Consul as a registry, and integrates it. Hash, random, polling, Fair Polling as a load balancing algorithm, - [FamilyBucket](https://github.com/q315523275/FamilyBucket) - 集合.net core、ocelot、consul、netty、rpc、eventbus、configserver、tracing、sqlsugar、vue-admin、基础管理平台等构建的微服务一条龙应用 - [moleculerjs/moleculer](https://github.com/moleculerjs/moleculer) - Progressive microservices framework for Node.js. - [networknt/light-4j](https://github.com/networknt/light-4j) - A fast, lightweight and more productive microservices framework - [Raiffeisen-DGTL/ViennaNET](https://github.com/Raiffeisen-DGTL/ViennaNET) - Framework for quickly creating enterprise microservices on .NET Core - [go-kit/kit](https://github.com/go-kit/kit) - A standard library for microservices. - [asim/go-micro](https://github.com/asim/go-micro) - Go Micro is a framework for distributed systems development - [go-kratos/kratos](https://github.com/go-kratos/kratos) - A Go framework for microservices. - [GDATASoftwareAG/motornet](https://github.com/GDATASoftwareAG/motornet) - Motor.NET is a microservice framework based on Microsoft.Extensions.Hosting - [NHadi/Dermayon](https://github.com/NHadi/Dermayon) - Dermayon is Library for supporting build large application,distributed application, scalable, microservices, cqrs, event sourcing, including generic ef repository pattern with unit of work, generic mongo repository pattern with unit of work, kafka, etc - [Eventuous/eventuous](https://github.com/Eventuous/eventuous) - Minimalistic Event Sourcing library for .NET - [Bullabs/Qitar](https://github.com/Bullabs/Qitar) - Domain Driven Design oriented application framework. - [JasperFx/wolverine](https://github.com/JasperFx/wolverine) - Next Generation .NET Command and Message Bus - [ServiceComposer/ServiceComposer.AspNetCore](https://github.com/ServiceComposer/ServiceComposer.AspNetCore) - ServiceComposer, a ViewModel Composition API Gateway - [EasyDesk/easydesk-clean-architecture](https://github.com/EasyDesk/easydesk-clean-architecture) - A microservice framework based on the Clean Architecture and the Domain Driven Design. - [dotnet/aspire](https://github.com/dotnet/aspire) - .NET Aspire is an opinionated, cloud ready stack for building observable, production ready, distributed applications ## 🚀 Samples - [eShopOnContainers](https://github.com/dotnet-architecture/eShopOnContainers) - Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 5, Docker Containers and Azure Kubernetes Services. Supports Visual Studio, VS for Mac and CLI based environments with Docker CLI, dotnet CLI, VS Code or any other code editor. - [coolstore-microservices](https://github.com/vietnam-devs/coolstore-microservices) - A full-stack .NET microservices build on Dapr and Tye - [practical-dapr](https://github.com/thangchung/practical-dapr) - A full-stack .NET microservices build on Dapr and Tye - [twzhangyang/RestAirline](https://github.com/twzhangyang/RestAirline) - DDD+CQRS+EventSourcing+Hypermedia API+ASP.NET Core 3.1+Masstransit+terraform+docker+k8s - [eShopOnContainersDDD](https://github.com/charlessolar/eShopOnContainersDDD) - Fork of dotnet-architecture/eShopOnContainers in full DDD/CQRS design using my own patterns - [dapr-tye-simple-microservices](https://github.com/kimcu-on-thenet/dapr-tye-simple-microservices) - An example of building .NET Core microservices with Dapr and Tye - [madslundt/NetCoreMicroservicesSample](https://github.com/madslundt/NetCoreMicroservicesSample) - Sample using micro services in .NET Core 3.1 Focusing on clean code - [run-aspnetcore-microservices](https://github.com/aspnetrun/run-aspnetcore-microservices) - Microservices on .Net platforms which used Asp.Net Web API, Docker, RabbitMQ, Ocelot API Gateway, MongoDB, Redis, SqlServer, Entity Framework Core, CQRS and Clean Architecture implementation. See Microservices Architecture and Step by Step Implementation on .NET Course w/ discount - [run-aspnet-identityserver4](https://github.com/aspnetrun/run-aspnet-identityserver4) - Secure microservices with using standalone Identity Server 4 and backing with Ocelot API Gateway. Protect our ASP.NET Web MVC and API applications with using OAuth 2 and OpenID Connect in IdentityServer4. Securing your web application and API with tokens, working with claims, authentication and authorization middlewares and applying policies. - [ModernArchitectureShop](https://github.com/alugili/ModernArchitectureShop) - The Microservices Online Shop is an application with a modern software architecture that is cleanly designed and based on.NET lightweight technologies. The shop has two build variations. The first variant is the classic Microservices Architectural Style. The second one is with Dapr. Dapr has a comprehensive infrastructure - [run-aspnet-grpc](https://github.com/aspnetrun/run-aspnet-grpc) - Using gRPC in Microservices for Building a high-performance Interservice Communication with .Net 5. See gRPC Microservices and Step by Step Implementation on .NET Course w/ discount - [coolstore-microservice](https://github.com/jbossdemocentral/coolstore-microservice) - [practical-clean-ddd](https://github.com/thangchung/practical-clean-ddd) - A simplified and effortless approach to get started with Domain-driven Design, Clean Architecture, CQRS, and Microservices patterns - [shopping-cart-k8s](https://github.com/thangchung/shopping-cart-k8s) - Service Mesh patterns for Microservices - [MicroCouriers](https://github.com/ImranMA/MicroCouriers) - Microservices ASP.NET Core + Event Bus + Kubernetes + Design Patterns - [book-fast-service-fabric](https://github.com/dzimchuk/book-fast-service-fabric) - A sample demonstrating how to implement a multitenant facility management and accommodation booking application as native Azure Service Fabric reliable services - [profjordanov/realworld-microservices](https://github.com/profjordanov/realworld-microservices) - Microservices based .NET Core backend implementation for RealWorld - [mspnp/microservices-reference-implementation](https://github.com/mspnp/microservices-reference-implementation) - A reference implementation demonstrating microservices architecture and best practices for Microsoft Azure - [patrikduch/netcore-microservices](https://github.com/patrikduch/netcore-microservices) - Advanced Microservices Architecture with NET5 framework - [alibaba/spring-cloud-alibaba](https://github.com/alibaba/spring-cloud-alibaba) - Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware. - [piomin/sample-spring-microservices-new](https://github.com/piomin/sample-spring-microservices-new) - Demo for Spring Boot 2 and Spring Cloud microservices with distributed configuration (Spring Cloud Config), service discovery (Eureka), API gateway (Spring Cloud Gateway, Zuul), Swagger2 API documentation, logs correlation using Spring Cloud Sleuth and many more - [ThreeDotsLabs/monolith-microservice-shop](https://github.com/ThreeDotsLabs/monolith-microservice-shop) - Source code for https://threedots.tech/post/microservices-or-monolith-its-detail/ article. - [phongnguyend/Practical.CleanArchitecture](https://github.com/phongnguyend/Practical.CleanArchitecture) - [thangchung/clean-architecture-dotnet](https://github.com/thangchung/clean-architecture-dotnet) - Dev: Apply Minimal Clean Architecture with DDD-lite, CQRS-lite, and just enough Cloud-native patterns on eCommerce sample business domain. 🍻 Ops: Use Tye with Dapr extension to deploy it to Kubernetes. - [Crizstian/cinema-microservice](https://github.com/Crizstian/cinema-microservice) - Example of a cinema microservice - [mmorejon/microservices-docker-go-mongodb](https://github.com/mmorejon/microservices-docker-go-mongodb) - Example of Microservices in Go with Docker, Kubernetes and MongoDB - [AlphaYu/Adnc](https://github.com/AlphaYu/Adnc) - .NET6 microservice/distributed development framework, but also suitable for the development of monolithic architecture systems. - [hbenc-uk/dapr-store](https://github.com/benc-uk/dapr-store) - Sample application showcasing the use of Dapr to build microservices based apps - [sjefvanleeuwen/showcase](https://github.com/sjefvanleeuwen/showcase) - A Full Stack Journey with Micro Services and Micro Front Ends. Using dapr, kubernetes, react module federation and web assembly - [baotoq/micro-commerce](https://github.com/baotoq/micro-commerce) - React, Nextjs, ASP.NET Core 5.0, IdentityServer, Dapr, Azure pipeline, K8S, SonarQube - [MongkonEiadon/VehicleTracker](https://github.com/MongkonEiadon/VehicleTracker) - Vehicle Tracker with Microservice example - [yang-xiaodong/eShopOnContainers](https://github.com/yang-xiaodong/eShopOnContainers) - Replace eShopOnContainers EventBus with CAP - [jbw/TooBigToFailBurgerShop](https://github.com/jbw/TooBigToFailBurgerShop) - .NET Microservice Reference Application. It's also an over-engineered burger shop! - [Daniel-Krzyczkowski/Smart-Accounting](https://github.com/Daniel-Krzyczkowski/Smart-Accounting) - This repository contains a solution for collecting invoices in a digital way. - [juicycleff/ultimate-backend](https://github.com/juicycleff/ultimate-backend) - Multi tenant SaaS starter kit with cqrs graphql microservice architecture, apollo federation, event source and authentication - [OpenCodeFoundation/eSchool](https://github.com/OpenCodeFoundation/eSchool) - eSchool Microservice based Solution - [ttulka/ddd-example-ecommerce-microservices](https://github.com/ttulka/ddd-example-ecommerce-microservices) - Domain-driven design microservices example - [WolfgangOfner/MicroserviceDemo](https://github.com/WolfgangOfner/MicroserviceDemo) - This is a demo with two ASP .NET 5 microservices using RabbitMQ and Docker - [hd9/aspnet-microservices](https://github.com/hd9/aspnet-microservices) - Sample microservice architecture using .NET Core, Docker, Azure and Kubernetes. - [mansoorafzal/AspnetMicroservices](https://github.com/mansoorafzal/AspnetMicroservices) - Development and Communication of Microservices with .NET Core 5 using ASP.NET Web API, Docker Compose, RabbitMQ, MassTransit, Portainer, gRPC, Protocol Buffers, SQL Server, Redis, MongoDB, PostgreSQL, Dapper, Entity Framework Core, AutoMapper, MediatR, FluentValidation, Ocelot, Elasticsearch, Kibana, Polly, OpenTelemetry, Jaeger. - [VasilisGaitanidis/master-containerized-microservices](https://github.com/VasilisGaitanidis/master-containerized-microservices) - This repo contains a sample application based on a fictional eCommerce. The primary goal of this sample is to demonstrate several software-architecture concepts like: Clean Architecture, Microservices, CQRS, Event Sourcing, Publish-Subscribe Architecture, Domain Driven Design (DDD). Currently this is a work in progress. - [MesutAtasoy/Joker](https://github.com/MesutAtasoy/Joker) - An example of microservices container based application which implemented different approaches within each microservice (DDD, CQRS, Simple CRUD) - [evgenirusev/Distributed-eStore](https://github.com/evgenirusev/Distributed-eStore) - Ecommerce SPA application with a microservices architecture implemented from scratch. Tech stack - Docker, Consul, Fabio, RabbitMQ, .Net Core, Mediatr, CQRS, React, Redux. .NET Core Microservices template, .NET React Redux, .NET RabbitMQ, .NET Distributed, Docker, .NET Core with Docker. - [Particular/eShopOnContainers](https://github.com/Particular/eShopOnContainers/tree/archive) - [matjazbravc/Microservice.Architecture.Demo](https://github.com/matjazbravc/Microservice.Architecture.Demo) - This demo shows a working sample of microservices architecture using ASP.NET Core. It covers how to create microservices, how to create API gateways using Ocelot, how to use MassTransit as distributed application framework, RabbitMQ as message broker, how to unit test microservices using xUnit, how to monitor microservices using health checks - [Azure-Samples/container-apps-store-api-microservice](https://github.com/Azure-Samples/container-apps-store-api-microservice) - Sample microservices solution using Azure Container Apps, Dapr, Cosmos DB, and Azure API Management - [thangchung/northwind-dotnet](https://github.com/thangchung/northwind-dotnet) - A full-stack .NET 6 Microservices build on Minimal APIs and C# 10 - [ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications](https://github.com/ivaylokenov/Architecture-of-ASP.NET-Core-Microservices-Applications) - Architecture of ASP.NET Core Microservices Applications - [EventSourcing.NetCore/MeetingsManagement](https://github.com/oskardudycz/EventSourcing.NetCore/tree/50dc5fdd7da0f4e790288c59fbfb9803543d6e8b/Sample/MeetingsManagement) - [microsoft/dotnet-podcasts](https://github.com/microsoft/dotnet-podcasts) - .NET 6 reference application shown at .NET Conf 2021 featuring ASP.NET Core, Blazor, .NET MAUI, Microservices, and more! - [thangchung/bff-auth](https://github.com/thangchung/bff-auth) - The demonstration of modern authentication using BFF pattern - [manfredsteyer/yarp-auth-proxy](https://github.com/manfredsteyer/yarp-auth-proxy) - [thiagocruzrj/E-Commerce-Microservices](https://github.com/thiagocruzrj/E-Commerce-Microservices) - Creating a distributed e-commerce system with microservice architecture. - [Daniel-Krzyczkowski/Cloud-Pharmacy-On-Azure](https://github.com/Daniel-Krzyczkowski/Cloud-Pharmacy-On-Azure) - Cloud Pharmacy is a fake medical company which used Microsoft Azure cloud services to implement the system for patients, physicians, and medicaments store. - [malikmasis/TelephoneDirectory](https://github.com/malikmasis/TelephoneDirectory) - microservices-> .net core 3.1 - Docker, Jenkins, Ocelot, RabbitMq, MassTransit, mssql, postgresql, elastic search, serilog, kibana, swagger, jwt - [anhkhoadx/Microservices](https://github.com/anhkhoadx/Microservices) - [NHadi/Pos](https://github.com/NHadi/Pos) - Sample Application DDD, Reactive Microservices, CQRS Event Sourcing Powered by DERMAYON LIBRARY - [m-jovanovic/event-reminder](https://github.com/m-jovanovic/event-reminder) - .NET Core Web API for seamless event organization with configurable notification systems. - [AleksK1NG/Java-Spring-CQRS-Microservice](https://github.com/AleksK1NG/Java-Spring-CQRS-Microservice) - Java-Spring-CQRS-Microservice - [desenvolvedor-io/dev-store](https://github.com/desenvolvedor-io/dev-store) - A microservices e-commerce reference application built with ASP.NET 6 - [idugalic/digital-restaurant](https://github.com/idugalic/digital-restaurant) - DDD. Event sourcing. CQRS. REST. Modular. Microservices. Kotlin. Spring. Axon platform. Apache Kafka. RabbitMQ - [fraktalio/order-demo](https://github.com/fraktalio/order-demo) - Axon demo - `Order Management` Information System - A part of the systems landscape - [AleksK1NG/Kotlin-ES-CQRS-Microservice](https://github.com/AleksK1NG/Kotlin-ES-CQRS-Microservice) - Kotlin-ES-CQRS-Microservice - [thangchung/coffeeshop-on-nomad](https://github.com/thangchung/coffeeshop-on-nomad) - The .NET coffeeshop application runs on Nomad and Consul Connect - [patrikduch/netcore-microservices](https://github.com/patrikduch/netcore-microservices) - Advanced NET Microservice Architecture with Azure Kubernetes Services integration. - [Ninchuga/AspNetMicroservicesShop](https://github.com/Ninchuga/AspNetMicroservicesShop) - AspNetMicroservicesShop - [pmorelli92/Orleans.Tournament](https://github.com/pmorelli92/Orleans.Tournament) - Orleans sample with clustering, implicit stream handling, authentication, authorization, websockets - [AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing](https://github.com/AntonioFalcaoJr/EDA.CleanArch.DDD.CQRS.EventSourcing) - A full-stack .NET 7 EDA solution - [markgossa/Reference-Event-Driven-Architecture](https://github.com/markgossa/Reference-Event-Driven-Architecture) - [AleksK1NG/Kotlin-Spring-gRPC-Microservice](https://github.com/AleksK1NG/Kotlin-Spring-gRPC-Microservice) - Kotlin Spring gRPC Microservice - [jeremydmiller/WolverinePresentation](https://github.com/jeremydmiller/WolverinePresentation) - Sample code and slide deck for my Wolverine talk for the JetBrains webinar - [mauroservienti/designing-a-ui-for-microservices-demos/](https://github.com/mauroservienti/designing-a-ui-for-microservices-demos/) - Demos and sample for my "Designing a UI for Microservices" talk - [oskardudycz/EventSourcing.NetCore/Sample/HotelManagement](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/HotelManagement) - [thinktecture-labs/cloud-native-sample](https://github.com/thinktecture-labs/cloud-native-sample) - Sample application to demonstrate how to build, orchestrate, and automate a polyglot cloud-native application - [chayxana/Restaurant-App](https://github.com/chayxana/Restaurant-App) - Restaurant App 🍔 is a sample open-source e-Commerce 🛒 application for ordering foods, powered by polyglot microservices architecture and cross-platform development including mobile and web - [thangchung/coffeeshop-on-dapr](https://github.com/thangchung/coffeeshop-on-dapr) - The coffeeshop event-driven application which is developed and run on Dapr - [thangchung/try-nomad-dapr](https://github.com/thangchung/try-nomad-dapr) - [m-khooryani/OverCloudAirways](https://github.com/m-khooryani/OverCloudAirways) - [meaboutsoftware/evolutionary-architecture](https://github.com/meaboutsoftware/evolutionary-architecture) ⭐ - Navigate the complex landscape of .NET software architecture with our step-by-step, story-like guide. Unpack the interplay between modular monoliths, microservices, domain-driven design, and various architectural patterns - [dotnet/eShop](https://github.com/dotnet/eShop) ⭐ - A reference .NET application implementing an eCommerce site - [jeremydmiller/CritterStackHelpDesk](https://github.com/jeremydmiller/CritterStackHelpDesk) - My take on Oskar's Helpdesk sample application, but with Wolverine - [event-driven-dotnet/EventDriven.ReferenceArchitecture](https://github.com/event-driven-dotnet/EventDriven.ReferenceArchitecture) ⭐ - Reference architecture for using EventDriven abstractions and libraries for Domain Driven Design (DDD), Command-Query Responsibility Segregation (CQRS) and Event Driven Architecture (EDA). - [ebubekirdinc/SuuCat](https://github.com/ebubekirdinc/SuuCat) - SuuCat is a sample containerized application consisting of several microservices. Its purpose is to use microservice patterns in practice - [Physer/Microshop.NET](https://github.com/Physer/Microshop.NET) - A .NET e-commerce showcase in a event-driven microservices architecture - [dotnet/eShopSupport](https://github.com/dotnet/eShopSupport) - A reference .NET application using AI for a customer support ticketing system - [Azure-Samples/eShopOnAzure](https://github.com/Azure-Samples/eShopOnAzure) - A variant of https://github.com/dotnet/eShop that uses Azure - [dotnet/eShop](https://github.com/dotnet/eShop) - A reference .NET application implementing an eCommerce site - [thangchung/practical-dotnet-aspire](https://github.com/thangchung/practical-dotnet-aspire) - The practical .NET Aspire builds on the coffeeshop app business domain - [dotnet-presentations/eshop-app-workshop](https://github.com/dotnet-presentations/eshop-app-workshop) - This workshop will teach you ASP.NET Core & .NET Aspire by building the product catalog & order placement features of the eShop reference application. - [foxminchan/BookWorm](https://github.com/foxminchan/BookWorm) - The practical implementation of .NET Aspire using Microservices - [foxminchan/CoolShop](https://github.com/foxminchan/CoolShop) - A cloud-native e-commerce app built on Dapr and Aspire - [Azure-Samples/eShopLite](https://github.com/Azure-Samples/eShopLite) - eShopLite is a set of reference .NET applications implementing an eCommerce site with features like Semantic Search, MCP, Reasoning models and more. - [mehmetozkaya/eshop-distributed](https://github.com/mehmetozkaya/eshop-distributed) - Develop AI-Powered Distributed Architectures using .NET Aspire and GenAI to develop EShop Catalog and Basket microservices integrate with Backing services including PostgreSQL, Redis, RabbitMQ, Keycloak, Ollama and Semantic Kernel to Create Intelligent E-Shop Solutions. ## 📚 Books - [Microservices Architecture and Step by Step Implementation on .NET](https://aspnetrun.azurewebsites.net/Microservices) - [Building Microservices: Designing Fine-Grained Systems, 2nd Edition](https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems/dp/1492034029) - [Microservices Patterns: With examples in Java 1st Edition](https://www.manning.com/books/microservices-patterns) - [Production-Ready Microservices: Building Standardized Systems Across an Engineering Organization](https://www.amazon.com/Production-Ready-Microservices-Susan-Fowler/dp/1491965975) - [Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith 1st Edition](https://www.amazon.com/Monolith-Microservices-Evolutionary-Patterns-Transform/dp/1492047848) - [Microservice Architecture: Aligning Principles, Practices, and Culture](https://www.amazon.com/Microservice-Architecture-Aligning-Principles-Practices/dp/1491956259) - [Microservices in .NET Core, Second Edition](https://www.manning.com/books/microservices-in-net-core-second-edition) - [Microservices in Action](https://www.manning.com/books/microservices-in-action) - [Microservices Security in Action](https://www.manning.com/books/microservices-security-in-action?query=Microservices) - [Building Microservices with ASP.NET Core: Develop, Test, and Deploy Cross-Platform Services in the Cloud](https://www.amazon.com/Building-Microservices-ASP-NET-Core-Cross-Platform/dp/1491961732) - [Building Event-Driven Microservices: Leveraging Organizational Data at Scale](https://www.amazon.com/Building-Event-Driven-Microservices-Leveraging-Organizational/dp/1492057894) - [Microservices: Up and Running: A Step-by-Step Guide to Building a Microservices Architecture](https://www.amazon.com/Microservices-Step-Step-Microservice-Architecture/dp/1492075450) - [Practical Microservices with Dapr and .NET: A developer's guide to building cloud-native applications using the Dapr event-driven runtime](https://www.amazon.com/Practical-Microservices-Dapr-NET-cloud-native/dp/1800568371) - [Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/) - [Microservices for the Enterprise: Designing, Developing, and Deploying](https://www.amazon.com/Microservices-Enterprise-Designing-Developing-Deploying/dp/1484238575/) - [Embracing Microservices Design: A practical guide to revealing anti-patterns and architectural pitfalls to avoid microservices fallacies](https://www.amazon.com/Embracing-Microservices-Design-anti-patterns-architectural/dp/180181838X/ref=pd_sbs_52/142-1174349-9952515) - [Practical Event-Driven Microservices Architecture: Building Sustainable and Highly Scalable Event-Driven Microservices](https://www.amazon.com/Practical-Event-Driven-Microservices-Architecture-Sustainable/dp/1484274679/) - [Practical Microservices with Dapr and .NET: A developer's guide to building cloud-native applications using the Dapr event-driven runtime](https://www.amazon.com/Practical-Microservices-Dapr-NET-cloud-native-ebook/dp/B08P5L81X8/) ================================================ FILE: docs/microservices/observability/correlationId.md ================================================ # CorrelationID ### 📕Articles - [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with-asp-net-web-api/) - [.NET Core Log Correlation - Request Id](https://www.frakkingsweet.com/net-core-log-correlation-request-id/) - [.NET Core Log Correlation - Arbitrary Log Properties](https://www.frakkingsweet.com/net-core-log-correlation-arbitrary-log-properties/) - [.NET Core Log Correlation - Easy Access to the Correlation Id](https://www.frakkingsweet.com/net-core-log-correlation-easy-access-to-headers/) - [.NET Core Log Correlation - HttpClient and default headers](https://www.frakkingsweet.com/net-core-log-correlation-httpclient-and-default-headers/) - [Passing correlation id across requests](https://ankitvijay.net/2020/11/24/passing-correlation-id-across-requests/) - [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with-asp-net-web-api/) - [Request Tracing And Logging Between Multiple MicroService With Correlation Id Using Serilog In .NET Core](https://www.c-sharpcorner.com/article/logging-and-tracing-in-multiple-microservice-with-correlation-using-net-core/) - [ASP.NET 5 and Log Correlation by Request Id](https://www.tugberkugurlu.com/archive/asp-net-5-and-log-correlation-by-request-id) - [How to propagate HTTP Headers (and Correlation IDs) using HttpClients in C#](https://www.code4it.dev/blog/propagate-httpheader-and-correlation-id) - [Capturing and forwarding correlation IDs in ASP.NET Core, the easy way](https://vgaltes.com/post/forwarding-correlation-ids-in-aspnetcore-version-2/) - [ASP.NET CORE CORRELATION IDS](https://www.stevejgordon.co.uk/asp-net-core-correlation-ids) - [Correlation ID with ASP.NET Web API](https://mderriey.com/2016/11/18/correlation-id-with-asp-net-web-api/) - [A consistent approach to track correlation IDs through microservices](https://theburningmonk.com/2015/05/a-consistent-approach-to-track-correlation-ids-through-microservices/) - [Capturing and forwarding correlation IDs in ASP.NET Core](https://vgaltes.com/post/forwarding-correlation-ids-in-aspnetcore/) - [Header propagation using ASP.NET Core](https://craftbakery.dev/http-header-propagation-aspnet-core/) - [Request Header Propagation In .NET Core Web Applications](https://thecodeblogger.com/2021/05/25/request-header-propagation-in-net-core-web-applications/) - [CorrelationId Tracing in .NET Microservices with HTTP and MassTransit](https://berkselvi.dev/posts/correlationid-tracing-net-microservices-with-http-and-rabbitmq/) - [How to propagate HTTP Headers (and Correlation IDs) using HttpClients in C#](https://www.code4it.dev/blog/propagate-httpheader-and-correlation-id/) ## 📦 Libraries - [Microsoft.AspNetCore.HeaderPropagation](https://www.nuget.org/packages/Microsoft.AspNetCore.HeaderPropagation/) ================================================ FILE: docs/microservices/observability/diagnostics.md ================================================ # Diagnostics ## 📕 Articles - [DiagnosticSource User's Guide](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md) - [Activity User Guide](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/ActivityUserGuide.md) - [EventSource User’s Guide](https://github.com/microsoft/dotnet-samples/blob/master/Microsoft.Diagnostics.Tracing/EventSource/docs/EventSource.md) - [Diagnostic Source in.Net Core](https://www.fatalerrors.org/a/diagnostic-source-in.net-core.html) - [Improve Activity API usability and OpenTelemetry integration](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/activity-improvements.md) - [Improve Activity API usability and OpenTelemetry integration (Part 2)](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/activity-improvements-2.md) - [The TraceEvent Library Programmers Guide](https://github.com/microsoft/dotnet-samples/blob/master/Microsoft.Diagnostics.Tracing/TraceEvent/docs/TraceEvent.md) - [What diagnostic tools are available in .NET Core?](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/) - [.NET distributed tracing concepts](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-concepts) - [Adding distributed tracing instrumentation](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-instrumentation-walkthroughs) - [Collect a distributed trace](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-collection-walkthroughs) - [Activity Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activity) - [ActivityListener Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activitylistener) - [ActivitySource Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activitysource) - [ActivityLink Struct](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.activitylink) - [EventListener Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracing.eventlistener) - [EventSource Class](https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracing.eventsource) - [Introducing diagnostics improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/introducing-diagnostics-improvements-in-net-core-3-0/) - [Diagnostics improvements in .NET 5](https://devblogs.microsoft.com/dotnet/diagnostics-improvements-in-net-5/) - [Logging using DiagnosticSource in ASP.NET Core](https://andrewlock.net/logging-using-diagnosticsource-in-asp-net-core/) - [Using the DiagnosticSource in .NET Core: Theory](https://sudonull.com/post/3671-Using-the-DiagnosticSource-in-NET-Core-Theory) - [Dumps](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dumps) - [EventCounters in .NET Core](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/event-counters) - [.NET Core logging and tracing](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/logging-tracing) - [.NET Diagnostics Tools: dump vs. gcdump](https://www.stefangeiger.ch/2020/04/21/dotnet-diagnostics-tools-gcdump-vs-dump.html) - [Diagnostics in .Net Core 3: Listening to outbound HTTP requests](https://im5tu.io/article/2020/06/diagnostics-in-.net-core-3-listening-to-outbound-http-requests/) - [.NET Tip: Performance Counters for MemoryCache](https://www.stefangeiger.ch/2019/11/25/dotnet-tip-memorycache-perfcounter.html) - [Investigate performance counters (dotnet-counters)](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-counters) - [Use Performance Counters in .NET to measure Memory, CPU, and Everything – Full Guide](https://michaelscodingspot.com/performance-counters/) - [Reporting Metrics Using .Net (Core) EventSource and EventCounte](https://dev.to/expecho/reporting-metrics-using-net-core-eventsource-and-eventcounter-23dn) - [Creating a Custom ETW EventSource for Debugging High-Performance Code in C#](https://aaronstannard.com/creating-your-own-ETW-source/) - [Tracing with EventSource in .NET 4.5](http://dev.goshoom.net/2013/04/tracing-with-eventsource/) - [Exploring EventSource Activity (correlation and causation) Features](https://docs.microsoft.com/en-us/archive/blogs/vancem/exploring-eventsource-activity-correlation-and-causation-features) - [DiagnosticSource User's Guide](https://github.com/dotnet/runtime/blob/main/src/libraries/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md) - [Output Diagnostic Source to Event Source](https://sourceexample.com/output-diagnostic-source-to-event-source-84888/) - [MassTransit DiagnosticSource](https://masstransit-project.com/advanced/monitoring/diagnostic-source.html) - [MassTransit Performance counters](https://masstransit-project.com/advanced/monitoring/perfcounters.html) - [Introducing Ukadc.Diagnostics](http://www.thejoyofcode.com/Introducing_Ukadc_Diagnostics.aspx) - [From zero to logging with System.Diagnostics in 15 minutes](http://www.thejoyofcode.com/From_zero_to_logging_with_System_Diagnostics_in_15_minutes.aspx) - [Cross-platform diagnostic tools for .NET Core](https://www.hanselman.com/blog/crossplatform-diagnostic-tools-for-net-core) - [Observing .NET Core Counters (in CloudWatch)](https://www.nocture.dk/2020/05/16/observing-.net-core-counters-in-cloudwatch/) - [A Lap Around ActivitySource and ActivityListener in .NET 5](https://jimmybogard.com/activitysource-and-listener-in-net-5/) - [Increasing Trace Cardinality with Activity Tags and Baggage](https://jimmybogard.com/increasing-trace-cardinality-with-tags-and-baggage/) - [Add SkyWalking + SkyApm-dotnet distributed link tracking system to the microservice framework Demo.MicroServer](https://www.programmersought.com/article/76773716203/) - [Using System.Diagnostic.DiagnosticSource to intercept database requests](https://bartwullems.blogspot.com/2021/01/using-systemdiagnosticdiagnosticsource.html) - [Diagnostic log Diagnosticsource in .NET CORE](https://www.programmersought.com/article/68718725762/) - [EventSource? DiagnosticSource? Both?](https://github.com/dotnet/aspnetcore/issues/2312) - [.NET Core 2.2: Runtime Events](https://jaliyaudagedara.blogspot.com/2019/01/net-core-22-runtime-events.html) - [ASP.NET Core Apps Observability](https://devblogs.microsoft.com/aspnet/observability-asp-net-core-apps/) - [OpenTelemetry .NET API](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Api/README.md) - [OpenTelemetry in .NET](https://lightstep.com/blog/opentelemetry-net-all-you-need-to-know/) - [Increasing Trace Cardinality with Activity Tags and Baggage](https://jimmybogard.com/increasing-trace-cardinality-with-tags-and-baggage/) - [Getting started with OpenTelemetry and distributed tracing in .NET Core](https://www.mytechramblings.com/posts/getting-started-with-opentelemetry-and-dotnet-core/) - [Monitoring background task](https://rafaelldi.blog/posts/monitoring-background-task/) - [Profiling a .NET6 app running in a linux container with dotnet-trace, dotnet-dump, dotnet-counters, dotnet-gcdump and Visual Studio](https://www.mytechramblings.com/posts/profiling-a-net-app-with-dotnet-cli-diagnostic-tools/) - [A brief introduction to DiagnosticSource](https://andrewlock.net/a-brief-introduction-to-diagnostic-source/) - [Consuming anonymous types with DiagnosticListener in .NET 6](https://andrewlock.net/consuming-anonymous-types-with-diagnosticlistener-in-dotnet6/) ## 📺 Videos - [Diagnostics Improvements in .NET Core 3.0](https://www.youtube.com/watch?v=fkjetdIdcyg) - [Introducing the Diagnostics Client Library for .NET Core](https://www.youtube.com/watch?v=Rei6d9nKaFQ) - [Cool things you can do with .NET Core 3 Tooling - Jonathan Mezach](https://www.youtube.com/watch?v=MSCRzPiGKr8) - [DiagnosticSource and Activity, Tracing in .NET Part 1 - .NET Concept of the Week - Episode 18](https://www.youtube.com/watch?v=y52l8XR3XK4) - [.NET Design Review: System.Diagnostics.Activity](https://www.youtube.com/watch?v=a3xPdYi6jYU) - [Diagnosing .NET 6 issues from sidecar containers using dotnet-monitor](https://www.youtube.com/watch?v=oCY9BsAw5oU) - [.NET Diagnostics for Applications: Best Practices](https://www.pluralsight.com/courses/dot-net-diagnostics-applications-best-practices) - [dotnet-monitor Fundamentals - Accessing .NET Diagnostics Easier](https://www.youtube.com/watch?v=pG0t19bEYJw) - [dotnet-monitor: Enabling a diagnostics sidecar in AKS](https://www.youtube.com/watch?v=3nzZO34nUFQ) ## 🚀 Samples - [gregkalapos/DiagnosticSource](https://github.com/gregkalapos/DotNetConceptOfTheWeek/tree/master/18_DiagnosticSource) - [aspnet/AspNetCore/blob/master/src/Hosting/Hosting/src/Internal/HostingEventSource.cs](https://github.com/aspnet/AspNetCore/blob/master/src/Hosting/Hosting/src/Internal/HostingEventSource.cs) - [aspnet/AspNetCore/blob/master/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelEventSource.cs](https://github.com/aspnet/AspNetCore/blob/master/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelEventSource.cs) - [SkyAPM-dotnet/SkyApm.Diagnostics.AspNetCore/HostingDiagnosticProcessor](https://github.com/SkyAPM/SkyAPM-dotnet/blob/master/src/SkyApm.Diagnostics.AspNetCore/HostingDiagnosticProcessor.cs) - [dotnet/runtime/DiagnosticsHandler](https://github.com/dotnet/runtime/blob/4f9ae42d861fcb4be2fcd5d3d55d5f227d30e723/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs#L98) - [dotnet/aspnetcore/HostingApplicationDiagnostics](https://github.com/dotnet/aspnetcore/blob/master/src/Hosting/Hosting/src/Internal/HostingApplicationDiagnostics.cs#L314) - [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.StackExchangeRedis](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis/README.md) - [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.SqlClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.SqlClient) - [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.AspNetCore](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.AspNetCore) - [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http) - [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient) - [jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry) - [jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources) - [open-telemetry/opentelemetry-dotnet/examples](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/examples) ## 📦 Libraries - [open-telemetry/opentelemetry-dotnet](https://github.com/open-telemetry/opentelemetry-dotnet) - The OpenTelemetry .NET Client - [Azure/diagnostics-eventflow](https://github.com/Azure/diagnostics-eventflow) - Microsoft Diagnostics EventFlow - [bluekiri/bluekiri-diagnostics-prometheus](https://github.com/bluekiri/bluekiri-diagnostics-prometheus) - Exposes Diagnostic Source events as prometheus metrics using prometheus-net underneath - [sgryphon/essential-diagnostics](https://github.com/sgryphon/essential-diagnostics) - Essential.Diagnostics contains additional trace listeners, filters and utility classes for the .NET Framework System.Diagnostics trace logging. Included are colored console, SQL database, rolling file, Seq logging server, and in-memory trace listeners, expression filters, activity and logical operation scopes, and configuration file monitoring. - [SkyAPM/SkyAPM-dotnet](https://github.com/SkyAPM/SkyAPM-dotnet) - [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.StackExchangeRedis](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis/README.md) - [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.SqlClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.SqlClient) - [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Instrumentation.AspNetCore](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.AspNetCore) - [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.Http) - [open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient) - [jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.OpenTelemetry) - [jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources) - extends the core MongoDB C# driver to expose telemetry information via System.Diagnostics. - [spectreconsole/errata](https://github.com/spectreconsole/errata) - A library that makes it easy to create and display diagnostics of different kinds. - [alexvaluyskiy/prometheus-net-contrib](https://github.com/alexvaluyskiy/prometheus-net-contrib) - Exposes .NET core diagnostic listeners and counters ================================================ FILE: docs/microservices/observability/distributed-tracing.md ================================================ # Distributed Tracing & Open Telemtry ## 📘 Resources - [Awesome OpenTelemetry](https://github.com/magsther/awesome-opentelemetry) - A curated list of OpenTelemetry resources - [open-telemetry/semantic-conventions](https://github.com/open-telemetry/semantic-conventions) - Defines standards for generating consistent, accessible telemetry across a variety of domains ## 📕 Articles - [What is OpenTelemetry? - opentelemetry.io](https://opentelemetry.io/docs/concepts/what-is-opentelemetry/) - [OpenTelemetry Specification Overview - opentelemetry.io](https://opentelemetry.io/docs/reference/specification/overview/) - [OpenTelemetry Specification - opentelemetry.io](https://opentelemetry.io/docs/reference/specification/) - [Trace Semantic Conventions - opentelemetry.io](https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/) - [Baggage in OpenTelemetry - opentelemetry.io](https://opentelemetry.io/docs/concepts/signals/baggage/) - [Tracing in OpenTelemetry - opentelemetry.io](https://opentelemetry.io/docs/concepts/signals/traces/) - [Metrics in OpenTelemetry - opentelemetry.io](https://opentelemetry.io/docs/concepts/signals/metrics/) - [Getting Started - opentelemetry.io](https://opentelemetry.io/docs/instrumentation/net/getting-started/) - [Using instrumentation libraries - opentelemetry.io](https://opentelemetry.io/docs/instrumentation/net/libraries/) - [Manual Instrumentation - opentelemetry.io](https://opentelemetry.io/docs/instrumentation/net/manual/) - [Exporters - opentelemetry.io](https://opentelemetry.io/docs/instrumentation/net/exporters/) - [Collect a distributed trace](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-collection-walkthroughs) - [NET distributed tracing concepts](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-concepts) - [Adding distributed tracing instrumentation](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing-instrumentation-walkthroughs) - [OpenTelemetry .NET API](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/src/OpenTelemetry.Api/README.md) - [Getting Started with OpenTelemetry .NET in 5 Minutes](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/trace/getting-started) - [OpenTelemetry .NET SDK](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry) - [Extending the OpenTelemetry .NET SDK](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/docs/trace/extending-the-sdk/README.md) - [Customizing OpenTelemetry .NET SDK](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/docs/trace/customizing-the-sdk/README.md) - [EventSource User’s Guide](https://github.com/microsoft/dotnet-samples/blob/master/Microsoft.Diagnostics.Tracing/EventSource/docs/EventSource.md) - [DiagnosticSource User's Guide](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md) - [Activity User Guide](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/ActivityUserGuide.md) - [Improve Activity API usability and OpenTelemetry integration](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/activity-improvements.md) - [Improve Activity API usability and OpenTelemetry integration (Part 2)](https://github.com/dotnet/designs/blob/main/accepted/2020/diagnostics/activity-improvements-2.md) - [The TraceEvent Library Programmers Guide](https://github.com/microsoft/dotnet-samples/blob/master/Microsoft.Diagnostics.Tracing/TraceEvent/docs/TraceEvent.md) - [Messaging Attributes Conventions](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/messaging.md#messaging-attributes)) - [Semantic conventions for HTTP spans](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/http.md) - [Semantic conventions for RPC spans](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/rpc.md) - [The Big Pieces: OpenTelemetry specification](https://lightstep.com/blog/opentelemetry-specification) - [The Big Pieces: OpenTelemetry context propagation](https://lightstep.com/blog/opentelemetry-context-propagation) - [The Big Pieces: OpenTelemetry client design and architecture](https://lightstep.com/blog/opentelemetry-client-design-and-architecture) - [The Big Pieces: OpenTelemetry Collector design and architecture](https://lightstep.com/blog/opentelemetry-collector-design-and-architecture) - [Using W3C Trace Context standard in distributed tracing](https://dev.to/luizhlelis/using-w3c-trace-context-standard-in-distributed-tracing-3743) - [Building End-to-End Diagnostics and Tracing: An Intro](https://jimmybogard.com/building-end-to-end-diagnostics-and-tracing-a-primer/) - [Distributed Tracing in ASP.NET Core with Jaeger and Tye Part 1 - Distributed Tracing](https://thecloudblog.net/post/distributed-tracing-in-asp.net-core-with-jaeger-and-tye-part-1-distributed-tracing/) - [Distributed Tracing in ASP.NET Core with Jaeger and Tye Part 2 - Project Tye](https://thecloudblog.net/post/distributed-tracing-in-asp.net-core-with-jaeger-and-tye-part-2-project-tye/) - [Getting Started with OpenTelemetry .NET C#](https://opentelemetry.lightstep.com/csharp/) - [OpenTelemetry .NET reaches v1.0](https://devblogs.microsoft.com/dotnet/opentelemetry-net-reaches-v1-0/) - [Deep Dive into Open Telemetry for .NET](https://rehansaeed.com/deep-dive-into-open-telemetry-for-net/) - [Open Telemetry for ASP.NET Core](https://rehansaeed.com/open-telemetry-for-asp-net-core/) - [Exporting Open Telemetry Data to Jaeger](https://rehansaeed.com/exporting-open-telemetry-data-to-jaeger/) - [OpenTracing and C#](https://www.olivercoding.com/2018-12-14-jaeger-csharp/) - [OpenTracing and C#: part 2](https://www.olivercoding.com/2018-12-30-jaeger-csharp-2/) - [Getting started with OpenTelemetry and distributed tracing in .NET Core](https://www.mytechramblings.com/posts/getting-started-with-opentelemetry-and-dotnet-core/) - [Distributed Tracing with OpenTracing API of .NET Core Applications on Kubernetes](https://www.gokhan-gokalp.com/en/distributed-tracing-with-opentracing-api-of-net-core-applications-on-kubernetes/) - [How Distributed Tracing Solves One of the Worst Microservices Problems](https://petabridge.com/blog/why-use-distributed-tracing/) - [Why You Should be Paying Attention to OpenTracing](https://petabridge.com/blog/why-use-opentracing/) - [The Current State of OpenTelemetry in .NET](https://petabridge.com/blog/state-opentelemetry-dotnet/) - [Improvements in .NET Core 3.0 for troubleshooting and monitoring distributed apps](https://devblogs.microsoft.com/aspnet/improvements-in-net-core-3-0-for-troubleshooting-and-monitoring-distributed-apps/) - [ASP.NET Core Apps Observability](https://devblogs.microsoft.com/aspnet/observability-asp-net-core-apps/#adding-tracing-to-a-net-core-application) - [A Step by Step Guide to Logging in ASP.NET Core 5](https://www.ezzylearning.net/tutorial/a-step-by-step-guide-to-logging-in-asp-net-core-5) - [Diagnostics in .Net Core 3: Listening to outbound HTTP requests](https://im5tu.io/article/2020/06/diagnostics-in-.net-core-3-listening-to-outbound-http-requests/) - [Trace Context](https://www.w3.org/TR/trace-context) - [Propagation format for distributed trace context: Baggage](https://w3c.github.io/baggage/) - [Using Jaeger and OpenTelemetry SDKs in a mixed environment with W3C Trace-Context](https://medium.com/jaegertracing/jaeger-clients-and-w3c-trace-context-c2ce1b9dc390) - [Distributed Tracing In .NET](https://dashdevs.com/blog/quick-and-efficient-distributed-tracing-in.net/) - [Diagnostics Improvements in .NET Core 3.0](https://www.youtube.com/watch?v=fkjetdIdcyg) - [Distributed Tracing with gRPC and OpenTelemetry](https://blog.ladeak.net/posts/grpc-distributed-tracing) - [Introducing diagnostics improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/introducing-diagnostics-improvements-in-net-core-3-0/) - [Using the DiagnosticSource in .NET Core: Theory](https://sudonull.com/post/3671-Using-the-DiagnosticSource-in-NET-Core-Theory) - [Add SkyWalking + SkyApm-dotnet distributed link tracking system to the microservice framework Demo.MicroServer](https://www.programmersought.com/article/76773716203/) - [Asp.Net Core uses Skywalking to implement distributed link tracking](https://www.programmersought.com/article/64607508135/) - [ASP.NET Core Apps Observability](https://devblogs.microsoft.com/aspnet/observability-asp-net-core-apps/) - [OpenTelemetry in .NET](https://lightstep.com/blog/opentelemetry-net-all-you-need-to-know/) - [Increasing Trace Cardinality with Activity Tags and Baggage](https://jimmybogard.com/increasing-trace-cardinality-with-tags-and-baggage/) - [Monitoring a .NET application using OpenTelemetry](https://www.meziantou.net/monitoring-a-dotnet-application-using-opentelemetry.htm) - [What is the difference between Logging, Tracing & Profiling?](https://greeeg.com/issues/differences-between-logging-tracing-profiling) - [Fullstack app (workshop) with distributed tracing, logging and monitoring](https://dev.to/damikun/fullstack-app-workshop-with-distributed-tracing-and-monitoring-3i45) - [OpenTelemetry in .NET](https://rafaelldi.blog/posts/open-telemetry-in-dotnet/) - [Distributed tracing for messaging application](https://rafaelldi.blog/posts/distributed-tracing-for-messaging-application/) - [Distributed application with Project Tye](https://rafaelldi.blog/posts/distributed-application-with-project-tye/) - [Tracing for messaging application](https://rafaelldi.blog/posts/tracing-for-messaging-application/) - [Optimally Configuring Open Telemetry Tracing for ASP.NET Core](https://rehansaeed.com/optimally-configuring-open-telemetry-tracing-for-asp-net-core/) - [OpenTelemetry in Action: Optimizing Database Operations](https://thecloudblog.net/post/opentelemetry-in-action-optimizing-database-operations/) - [OpenTelemetry in Action: Identifying Database Dependencies](https://thecloudblog.net/post/opentelemetry-in-action-identifying-database-dependencies/) - [Just-in-Time Nomad: Running the OpenTelemetry Collector on Hashicorp Nomad with HashiQube](https://storiesfromtheherd.com/just-in-time-nomad-running-the-opentelemetry-collector-on-hashicorp-nomad-with-hashiqube-4eaf009b8382) - [How to setup OpenTelemetry instrumentation in ASP.NET core](https://dev.to/jmourtada/how-to-setup-opentelemetry-instrumentation-in-aspnet-core-23p5) - [What is OpenTelemetry?](https://lightstep.com/opentelemetry/about) - [Getting started with OpenTelemetry Metrics in .NET. Part 1: Key concepts](https://www.mytechramblings.com/posts/getting-started-with-opentelemetry-metrics-and-dotnet-part-1/) ⭐ - [Getting started with OpenTelemetry Metrics in .NET. Part 2: Instrumenting the BookStore API](https://www.mytechramblings.com/posts/getting-started-with-opentelemetry-metrics-and-dotnet-part-2/) ⭐ - [OpenTelemetry Distributed Tracing](https://uptrace.dev/opentelemetry/distributed-tracing.html) - [OpenTelemetry Tracing API for .NET](https://uptrace.dev/opentelemetry/dotnet-tracing.html) - [Set up OpenTelemetry with Event Sourcing and Marten](https://event-driven.io/en/set_up_opentelemetry_wtih_event_sourcing_and_marten/) - [Automatic Instrumentation of Containerized .NET Applications With OpenTelemetry](https://www.twilio.com/blog/automatic-instrumentation-of-containerized-dotnet-applications-with-opentelemetry) ⭐ - [Instrumenting .NET Apps with OpenTelemetry](https://www.thorsten-hans.com/instrumenting-dotnet-apps-with-opentelemetry/) - [Observability with Grafana Cloud and OpenTelemetry in .net microservices](https://dev.to/dbolotov/observability-with-grafana-cloud-and-opentelemetry-in-net-microservices-448c) ⭐ - [Observing .NET microservices with OpenTelemetry - logs, traces and metrics](https://blog.codingmilitia.com/2023/09/05/observing-dotnet-microservices-with-opentelemetry-logs-traces-metrics/) ⭐ - [Supporting Jaeger with native OTLP](https://deploy-preview-1892--opentelemetry.netlify.app/blog/2022/jaeger-native-otlp/) - [OTLP Specification 1.0.0](https://opentelemetry.io/docs/specs/otlp/) - [Introducing native support for OpenTelemetry in Jaeger](https://medium.com/jaegertracing/introducing-native-support-for-opentelemetry-in-jaeger-eb661be8183c) - [.NET Aspire dashboard is the best tool to visualize your OpenTelemetry data during local development](https://anthonysimmon.com/dotnet-aspire-dashboard-best-tool-visualize-opentelemetry-local-dev/) - [Trace Propagation and Public API Endpoints in .NET – Part 1 (Disable All)](https://martinjt.me/2023/07/07/trace-propagation-and-public-api-endpoints-in-net-part-1-disable-all/) - [Where are my traces? (weird .NET meets OpenTelemetry gotcha)](https://blog.codingmilitia.com/2024/05/13/where-are-my-traces-weird-dotnet-meets-opentelemetry-gotcha/) - [Monitoring Unit Tests with OpenTelemetry in .NET](https://www.honeycomb.io/blog/monitoring-unit-tests-opentelemetry) - [Automated Tests instrumentation via OpenTelemetry and Aspire Dashboard](https://nikiforovall.github.io/dotnet/opentelemtry/2024/06/07/test-instrumentation-with-otel-aspire.html) - [A Beginner's Guide to the OpenTelemetry Collector](https://betterstack.com/community/guides/observability/opentelemetry-collector/) ⭐ ## 📺 Videos - [Jimmy Bogard - Distributed Tracing Made Easy with .NET Core and OpenTelemetry](https://www.youtube.com/watch?v=s9UNr1oEMl4) - [On .NET Live - Cloud Native Patterns for .NET Developers](https://www.youtube.com/watch?v=PDdHa0ushJ0) - [Distributed Tracing Made Easy with .NET Core - Jimmy Bogard](https://www.youtube.com/watch?v=kfyCHtqk-Ts) - [Distributed Tracing Made Easy with .NET 5, with Jimmy Bogard](https://www.youtube.com/watch?v=N0r5NSY3ZIQ) - [Distributed Tracing with .NET 5](https://www.youtube.com/watch?v=cgfIX9Y7AsQ) - [ASP.NET Core Series: Tracing](https://www.youtube.com/watch?v=G_C1RGOYZk8) - [Distributed Tracing with Jaeger [Microservices .NET]](https://www.youtube.com/watch?v=toXFRBtv4fg) - [Application Diagnostics in .NET Core 3.1 - Damian Edwards & David Fowler](https://www.youtube.com/watch?v=p6CjlnwPhHQ) - [DiagnosticSource and Activity, Tracing in .NET Part 1 - .NET Concept of the Week - Episode 18](https://www.youtube.com/watch?v=y52l8XR3XK4) - [Tracing with Jaeger and Kubernetes](https://www.youtube.com/watch?v=FikF0DtxZno) - [Exploring distributed tracing with ASP NET Core 6](https://www.youtube.com/watch?v=l1_i8p2hVlE) - [OpenTelemetry with Minimal APIs in .NET 6](https://www.youtube.com/watch?v=djLCqEzf72o) - [OpenTelemetry will save your day and night - Alexey Zimarev - NDC Oslo 2021](https://www.youtube.com/watch?v=pz4bNmlss3w) - [OpenMetrics, OpenTracing, OpenTelemetry - are we there yet? - Alexey Zimarev - NDC Oslo 2020](https://www.youtube.com/watch?v=0vl-4OhPyQY) - [MassTransit v8 - Open Telemetry](https://www.youtube.com/watch?v=WsTYClGrOVI) - [.NET Diagnostics for Applications: Best Practices](https://www.pluralsight.com/courses/dot-net-diagnostics-applications-best-practices) - [Distributed Tracing in .NET 6 using OpenTelemetry - Martin Thwaites - NDC Copenhagen 2022](https://www.youtube.com/watch?v=3JnMfJM9K0c) - [Cloud-native development with .NET 8 | Microsoft Build 2023](https://www.youtube.com/watch?v=hz9d3AcZKqQ) - [Practical OpenTelemetry for .NET - Martin Thwaites - NDC Oslo 2023](https://www.youtube.com/watch?v=c4AJlZeX2fE) - [Getting started with the OpenTelemetry Collector](https://www.youtube.com/watch?v=EeU-k659lpw) ## 📦 Libraries - [SkyAPM/SkyAPM-dotnet](https://github.com/SkyAPM/SkyAPM-dotnet) - The .NET/.NET Core instrument agent for Apache SkyWalking - [opentracing-contrib/csharp-netcore](https://github.com/opentracing-contrib/csharp-netcore) - OpenTracing instrumentation for .NET Core & .NET 5 apps - [jaegertracing/jaeger-client-csharp](https://github.com/jaegertracing/jaeger-client-csharp) - C# client (tracer) for Jaeger - [open-telemetry/opentelemetry-dotnet](https://github.com/open-telemetry/opentelemetry-dotnet) - The OpenTelemetry .NET Client - [SkyAPM/SkyAPM-dotnet](https://github.com/SkyAPM/SkyAPM-dotnet) - The .NET/.NET Core instrument agent for Apache SkyWalking - [jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources) - extends the core MongoDB C# driver to expose telemetry information via System.Diagnostics. - [jbogard/NServiceBus.Extensions.Diagnostics.OpenTelemetry](https://github.com/jbogard/NServiceBus.Extensions.Diagnostics.OpenTelemetry) - [jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources](https://github.com/jbogard/MongoDB.Driver.Core.Extensions.DiagnosticSources) - [open-telemetry/opentelemetry-dotnet-contrib](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) - This repository contains set of components extending functionality of the OpenTelemetry .NET SDK. Instrumentation libraries, exporters, and other components can find their home here. - [open-telemetry/opentelemetry-dotnet/OpenTelemetry.Exporter.InMemory](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Exporter.InMemory) - The in-memory exporter stores data in a user provided memory buffer. - [alexvaluyskiy/prometheus-net-contrib](https://github.com/alexvaluyskiy/prometheus-net-contrib) - Exposes .NET core diagnostic listeners and counters - [open-telemetry/opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib) - Contrib repository for the OpenTelemetry Collector - [open-telemetry/opentelemetry-collector/](https://github.com/open-telemetry/opentelemetry-collector/) - OpenTelemetry Collector - [grafana/grafana-opentelemetry-dotnet](https://github.com/grafana/grafana-opentelemetry-dotnet) - Grafana's distribution of OpenTelemetry instrumentation for .NET ## 🚀 Samples - [karlospn/opentelemetry-tracing-demo](https://github.com/karlospn/opentelemetry-tracing-demo) - Example about how to use OpenTelemetry for tracing when we have a series of distributed applications communicating between them - [jbogard/nsb-diagnostics-poc](https://github.com/jbogard/nsb-diagnostics-poc) - [open-telemetry/opentelemetry-dotnet/examples](https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/examples) - [damikun/trouble-training](https://github.com/damikun/trouble-training) - FullStack app workshop with distributed tracing and monitoring. This shows the configuration from React frontend to .NetCore backend. - [andreatosato/Photobook](https://github.com/andreatosato/Photobook) - [rafaelldi/open-telemetry-in-dotnet](https://github.com/rafaelldi/open-telemetry-in-dotnet) - Sample project for the article about OpenTelemetry in .NET - [rafaelldi/distributed-tracing-for-messaging](https://github.com/rafaelldi/distributed-tracing-for-messaging) - Sample project for the article about distributed tracing in messaging application - [thangchung/practical-opentelemetry](https://github.com/thangchung/practical-opentelemetry) - Make OpenTelemetry works on .NET Core with features such as tracing, logs and metrics on multiple protocols like HTTP/gRPC/UDP/TCP... - [jbogard/presentations/DistributedTracing](https://github.com/jbogard/presentations/tree/master/DistributedTracing) - [james-world/oxford-otel-demo](https://github.com/james-world/oxford-otel-demo) - [hashicorp/nomad-open-telemetry-getting-started](https://github.com/hashicorp/nomad-open-telemetry-getting-started) - OpenTelemetry getting started guides on Nomad - [open-telemetry/opentelemetry-collector-contrib/nomad](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/examples/nomad) - [open-telemetry/opentelemetry-collector-contrib/examples/demo](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/examples/demo) - [joaofbantunes/ExploringDistributedTracingWithAspNet](https://github.com/joaofbantunes/ExploringDistributedTracingWithAspNet) - [davidfowl/TodoApi](https://github.com/davidfowl/TodoApi/blob/afdc367fadcfd979bb85dd73e5f48cf896ca0f1a/TodoApi/OpenTelemetryExtensions.cs#L11) - [oskardudycz/EventSourcing.NetCore](https://github.com/oskardudycz/EventSourcing.NetCore/pull/181) - [Eventuous/eventuous](https://github.com/Eventuous/eventuous) - [kimcuhoang/practical-net-otelcollector](https://github.com/kimcuhoang/practical-net-otelcollector) ⭐ - Practical .NET Observability with OpenTelemetry Collector - [cecilphillip/grafana-otel-dotnet](https://github.com/cecilphillip/grafana-otel-dotnet) ⭐ - Sample setup showing ASP.NET Core observability with Prometheus, Loki, Grafana, Opentelemetry Collector - [bradygaster/dotnet-cloud-native-build-2023](https://github.com/bradygaster/dotnet-cloud-native-build-2023) - [bravecobra/emojivoto-dotnet](https://github.com/bravecobra/emojivoto-dotnet) - [davidfowl/OtlpDemo](https://github.com/davidfowl/OtlpDemo) ⭐ - [JamesNK/aspnetcore-grafana](https://github.com/JamesNK/aspnetcore-grafana) - Grafana dashboards for ASP.NET Core metrics - [joaofbantunes/DotNetMicroservicesObservabilitySample](https://github.com/joaofbantunes/DotNetMicroservicesObservabilitySample) - Sample application looking into observability of .NET microservices, using popular tools and technologies like OpenTelemetry, Prometheus, Grafana and (potentially) others - [open-telemetry/opentelemetry-demo](https://github.com/open-telemetry/opentelemetry-demo) ⭐ - This repository contains the OpenTelemetry Astronomy Shop, a microservice-based distributed system intended to illustrate the implementation of OpenTelemetry in a near real-world environment. - [open-telemetry/opentelemetry-collector-contrib/examples/demo](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/examples/demo) ================================================ FILE: docs/microservices/observability/logging.md ================================================ # Logging ## 📕 Articles - [Collect and Query your Kubernetes Cluster Logs with Grafana Loki](https://www.programmingwithwolfgang.com/collect-and-query-kubernetes-logs-with-grafana-loki) - [.NET Core Microservice Logging with Grafana and Loki](https://medium.com/c-sharp-progarmming/net-core-microservice-logging-with-grafana-and-loki-92cd2783ed88) - [.Net 6 WebAPI - Intro to ElasticSearch & Kibana - Step by Step](https://dev.to/moe23/net-6-webapi-intro-to-elasticsearch-kibana-step-by-step-p9l) - [Net Core + Serilog + ElasticSearch + Kibana](https://medium.com/@matias.paulo84/net-core-serilog-elasticsearch-kibana-3bd080ff4c1e) - [Observability with Grafana Cloud and OpenTelemetry in .net microservices](https://dev.to/dbolotov/observability-with-grafana-cloud-and-opentelemetry-in-net-microservices-448c) ⭐ - [Automatic Instrumentation of Containerized .NET Applications With OpenTelemetry](https://www.twilio.com/blog/automatic-instrumentation-of-containerized-dotnet-applications-with-opentelemetry) ## 📺 Videos - [Grafana Loki: Like Prometheus, But for logs. - Tom Wilkie, Grafana Labs](https://www.youtube.com/watch?v=CQiawXlgabQ) - [Getting started with Grafana Loki in Kubernetes](https://www.youtube.com/watch?v=UM8NiQLZ4K0) - [How to Setup OpenTelemetry Logging in .NET](https://www.youtube.com/watch?v=QU_o24OZeIw) ## 🚀 Samples - [Cingulara/dotnet-core-prometheus-grafana](https://github.com/Cingulara/dotnet-core-prometheus-grafana) - [arkapravasinha/GrafProm](https://github.com/arkapravasinha/GrafProm) ## 📦 Libraries - [grafana/loki](https://github.com/grafana/loki) - Like Prometheus, but for logs. - [serilog-contrib/serilog-sinks-grafana-loki](https://github.com/serilog-contrib/serilog-sinks-grafana-loki) - A Serilog sink sending log events to Grafana Loki - [JosephWoodward/Serilog-Sinks-Loki](https://github.com/JosephWoodward/Serilog-Sinks-Loki) - A Serilog Sink for Loki, Grafana's new Prometheus inspired log aggregator ================================================ FILE: docs/microservices/observability/monitoring.md ================================================ # Monitoring ## Resources - [samber/awesome-prometheus-alerts](https://github.com/samber/awesome-prometheus-alerts) - Collection of Prometheus alerting rules ## 📕 Articles - [.NET metrics](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/metrics) - [Creating Metrics](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/metrics-instrumentation) - [Collect metrics](https://docs.microsoft.com/en-us/dotnet/core/diagnostics/metrics-collection) - [Monitor .NET Microservices in Kubernetes with Prometheus](https://www.programmingwithwolfgang.com/monitor-net-microservices-with-prometheus/) - [Create Grafana Dashboards with Prometheus Metrics](https://www.programmingwithwolfgang.com/create-grafana-dashboards-with-prometheus-metrics) - [.NET Core Web API Metrics with Prometheus and Grafana](https://dale-bingham-cingulara.medium.com/net-core-web-api-metrics-with-prometheus-and-grafana-fe84a52d9843) - [ASP.NET Core: Metrics](https://rafaelldi.blog/posts/asp-net-core-metrics/) - [Monitoring Your Dotnet Service Using Prometheus](https://dev.to/ingvarx/monitoring-your-dotnet-service-using-prometheus-2hhn) - [The 4 Types Of Prometheus Metrics](https://tomgregory.com/the-four-types-of-prometheus-metrics/) - [METRIC TYPES](https://prometheus.io/docs/concepts/metric_types/) - [Create Grafana Dashboards with Prometheus Metrics](https://www.programmingwithwolfgang.com/create-grafana-dashboards-with-prometheus-metrics) - [Automatic Instrumentation of Containerized .NET Applications With OpenTelemetry](https://www.twilio.com/blog/automatic-instrumentation-of-containerized-dotnet-applications-with-opentelemetry) - [Observability with Grafana Cloud and OpenTelemetry in .net microservices](https://dev.to/dbolotov/observability-with-grafana-cloud-and-opentelemetry-in-net-microservices-448c) ⭐ - [OpenTelemetry Collector Metrics - Prometheus - Grafana in .NET 8](https://www.mytechramblings.com/posts/getting-started-with-opentelemetry-metrics-and-dotnet-part-1) - [Observing .NET microservices with OpenTelemetry - logs, traces and metrics](https://blog.codingmilitia.com/2023/09/05/observing-dotnet-microservices-with-opentelemetry-logs-traces-metrics/) ⭐ - [ASP.NET Core Metrics with Prometheus](https://aevitas.medium.com/expose-asp-net-core-metrics-with-prometheus-15e3356415f4) - [Reporting Metrics Using .Net (Core) EventSource and EventCounte](https://dev.to/expecho/reporting-metrics-using-net-core-eventsource-and-eventcounter-23dn) - [MassTransit Prometheus Metrics](https://masstransit-project.com/advanced/monitoring/prometheus.html) - [Automatic Instrumentation of Containerized .NET Applications With OpenTelemetry](https://www.twilio.com/blog/automatic-instrumentation-of-containerized-dotnet-applications-with-opentelemetry) - [Introducing ASP.NET Core metrics and Grafana dashboards in .NET 8](https://devblogs.microsoft.com/dotnet/introducing-aspnetcore-metrics-and-grafana-dashboards-in-dotnet-8/) - [Getting Started with Prometheus Alerting](https://dev.to/mattdark/getting-started-with-prometheus-alerting-3059) - [Prometheus Sample Alert Rules](https://www.squadcast.com/blog/prometheus-sample-alert-rules) ## Viodes - [Prometheus Grafana Dotnet Core STEP BY STEP](https://www.youtube.com/watch?v=cvt1Vrs3ajU) - [Cloud-native development with .NET 8 | Microsoft Build 2023](https://www.youtube.com/watch?v=hz9d3AcZKqQ) - [Server Monitoring // Prometheus and Grafana Tutorial](https://www.youtube.com/watch?v=9TJx7QTrTyo) - [How to get started with Grafana for your metrics, logs, and traces](https://grafana.com/go/webinar/getting-started-with-grafana-apac/) - [Intro to metrics with Grafana: Prometheus, Graphite, and beyond](https://grafana.com/go/webinar/intro-to-metrics-with-grafana-apac/) - [How to get started with logging and Grafana Loki](https://grafana.com/go/webinar/getting-started-with-logging-with-loki-apac/) - [How to get started with tracing and Grafana Tempo](https://grafana.com/go/webinar/getting-started-with-tracing-tempo-apac/) - [Sending generated traces to Grafana Tempo](https://www.youtube.com/watch?v=V5GtJRZtZ90) - [Measure All The Things with App Metrics - Mark Rendle](https://www.youtube.com/watch?v=YJgBAiPlG3k) - [How to collect metrics and create dashboards using Grafana, Prometheus and AppMetrics in .NET Core](https://www.youtube.com/watch?v=sM7D8biBf4k) - [Prometheus Fundamentals - YouTube Playlist, Julius | PromLabs](https://www.youtube.com/playlist?list=PLyBW7UHmEXgylLwxdVbrBQJ-fJ_jMvh8h) ⭐ ## Courses - [Introduction to Prometheus](https://training.promlabs.com/training/introduction-to-prometheus) ## 📦 Libraries - [VictoriaMetrics/VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - VictoriaMetrics: fast, cost-effective monitoring solution and time series database - [grafana/mimir](https://github.com/grafana/mimir) - Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus. - [grafana/phlare](https://github.com/grafana/phlare) - horizontally-scalable, highly-available, multi-tenant continuous profiling aggregation system - [prometheus-community/postgres_exporter](https://github.com/prometheus-community/postgres_exporter) - A PostgreSQL metric exporter for Prometheus ## 🚀 Samples - [Cingulara/dotnet-core-prometheus-grafana](https://github.com/Cingulara/dotnet-core-prometheus-grafana) - A tutorial repo to use .NET Core 2.2, Prometheus and Grafana to show metrics of your Web APIs - [bradygaster/dotnet-cloud-native-build-2023](https://github.com/bradygaster/dotnet-cloud-native-build-2023) - [kimcuhoang/practical-net-otelcollector](https://github.com/kimcuhoang/practical-net-otelcollector) ⭐ - Practical .NET Observability with OpenTelemetry Collector - [cecilphillip/grafana-otel-dotnet](https://github.com/cecilphillip/grafana-otel-dotnet) ⭐ - Sample setup showing ASP.NET Core observability with Prometheus, Loki, Grafana, Opentelemetry Collector - [bravecobra/emojivoto-dotnet](https://github.com/bravecobra/emojivoto-dotnet) A microservice example in .NET Core showing opentelemetry capabilities - [JamesNK/aspnetcore-grafana](https://github.com/JamesNK/aspnetcore-grafana) - Grafana dashboards for ASP.NET Core metrics - [davidfowl/OtlpDemo](https://github.com/davidfowl/OtlpDemo) ⭐ ================================================ FILE: docs/microservices/observability/observability.md ================================================ # Observibility ## 📕 Articles - [Monitoring and Observability in Cloud-Native ASP.NET Core apps](https://devblogs.microsoft.com/aspnet/monitoring-and-observability-in-cloud-native-asp-net-core-apps/) - [ASP.NET Core Apps Observability](https://devblogs.microsoft.com/aspnet/observability-asp-net-core-apps) - [Unpacking Observability: Understanding Logs, Events, Traces, and Spans](https://medium.com/dzerolabs/observability-journey-understanding-logs-events-traces-and-spans-836524d63172) - [Observability with Grafana Cloud and OpenTelemetry in .net microservices](https://dev.to/dbolotov/observability-with-grafana-cloud-and-opentelemetry-in-net-microservices-448c) ⭐ - [Automatic Instrumentation of Containerized .NET Applications With OpenTelemetry](https://www.twilio.com/blog/automatic-instrumentation-of-containerized-dotnet-applications-with-opentelemetry) - [A Beginner's Guide to the OpenTelemetry Collector](https://betterstack.com/community/guides/observability/opentelemetry-collector/) ⭐ ## 📺 Videos - [On .NET Live - Cloud Native Patterns for .NET Developers](https://www.youtube.com/watch?v=PDdHa0ushJ0) ================================================ FILE: docs/microservices/observability/tools/efk.md ================================================ # Elastic Fluentd Kibana (EFK) ## 📺 Videos - [How to install EFK stack using Docker with Fluentd](https://www.youtube.com/watch?v=MNId4HG0wV8) - [Monitor Kubernetes Logs using EFK stack - Elasticsearch, FluentBit & Kibana](https://www.youtube.com/watch?v=8nWh1GLd7nY) - [Logging with Elasticsearch, Fluentd and Kibana](https://www.youtube.com/watch?v=ZBeq6_959D4) - [Logging with EFK in Kubernetes](https://www.youtube.com/watch?v=mwToMPpDHfg) - [Kubernetes Logging with Rancher, Fluentd and Elastic Stack](https://www.youtube.com/watch?v=PZHEgNKORbY) - [How Fluentd simplifies collecting and consuming logs | Fluentd simply explained](https://www.youtube.com/watch?v=5ofsNyHZwWE) - [Introduction to Fluentd: Collect logs and send almost anywhere](https://www.youtube.com/watch?v=Gp0-7oVOtPw) - [DevOps Tutorials |Deploying the ELK and EFK Stack on Kubernetes with Helm | Cloudlearnhub](https://www.youtube.com/watch?v=UsAKqQ1OvJM) - [How to install EFK stack using Docker with Fluentd](https://www.youtube.com/watch?v=MNId4HG0wV8) ================================================ FILE: docs/microservices/observability/tools/elk.md ================================================ # Elastic Search Kibana (ELK) ### 📕Articles - [.Net 6 WebAPI - Intro to ElasticSearch & Kibana - Step by St](https://dev.to/moe23/net-6-webapi-intro-to-elasticsearch-kibana-step-by-step-p9l) - [Elasticsearch: How to Add Full-Text Search to Your Database](https://mentormate.medium.com/elasticsearch-how-to-add-full-text-search-to-your-database-ee2f3ea4d3f3) - [Logging with ElasticSearch, Kibana, ASP.NET Core and Docker](https://www.humankode.com/asp-net-core/logging-with-elasticsearch-kibana-asp-net-core-and-docker) - [Elasticsearch 101: Fundamentals & Core Components](https://medium.com/velotio-perspectives/elasticsearch-101-fundamentals-core-components-a1fdc6090a5e) - [.Net 6 WebAPI - Intro to ElasticSearch & Kibana - Step by Step](https://dev.to/moe23/net-6-webapi-intro-to-elasticsearch-kibana-step-by-step-p9l) - [Net Core + Serilog + ElasticSearch + Kibana](https://medium.com/@matias.paulo84/net-core-serilog-elasticsearch-kibana-3bd080ff4c1e) ## 📺 Videos - [Filebeat + Elk Stack Tutorial With Kubernetes](https://www.youtube.com/watch?v=SU--XMhbWoY) - [Net 6 WebAPI - Intro to ElasticSearch & Kibana - Step by Step #aspnetcore](https://www.youtube.com/watch?v=5exN6nQ7558) - [Monitoring .NET Applications with Elastic APM: A .NET APM Agent Preview](https://www.youtube.com/watch?v=1EyF6JIST_0) - [How to use Elasticsearch from .NET](https://www.youtube.com/watch?v=tw9svKWq6tg) - [Logging into Elasticsearch using Serilog and viewing logs in Kibana | .NET Core Tutorial](https://www.youtube.com/watch?v=0acSdHJfk64) - [The .NET Docs Show - Getting Started with Elasticsearch.NET](https://www.youtube.com/watch?v=Ll5yLL83W8M) - [Send C# app logs to Elasticsearch via logstash and filebeat](https://www.youtube.com/watch?v=4ilUmga1A9w) - [Overview of the Elastic Stack (formerly ELK stack)](https://www.youtube.com/watch?v=Hqn5p67uev4) - [Getting Started with Kibana (tutorial)](https://www.youtube.com/watch?v=DVgKDPf7hOU) - [Common Elastic Stack & Elasticsearch Architectures](https://www.youtube.com/watch?v=Yc-G13lEbpc) - [Monitor Kubernetes Logs using EFK stack - Elasticsearch, FluentBit & Kibana](https://www.youtube.com/watch?v=8nWh1GLd7nY) - [How to install EFK stack using Docker with Fluentd](https://www.youtube.com/watch?v=MNId4HG0wV8) - [Introduction to Elasticsearch](https://www.youtube.com/watch?v=yZJfsUOHJjg) - [Introduction to Elasticsearch Aggregations](https://www.youtube.com/watch?v=9RhwXTBVMqI) - [Understanding the Kibana Query Language (KQL)](https://www.youtube.com/watch?v=wfqItAlUy8g) ## 📦 Libraries - [elastic/elasticsearch-net](https://github.com/elastic/elasticsearch-net) - This strongly-typed, client library enables working with Elasticsearch. It is the official client maintained and supported by Elastic. - [kevwan/go-stash](https://github.com/kevwan/go-stash) - go-stash is a high performance, free and open source server-side data processing pipeline that ingests data from Kafka, processes it, and then sends it to ElasticSearch. - [deviantony/docker-elk](https://github.com/deviantony/docker-elk) - The Elastic stack (ELK) powered by Docker and Compose. - [sherifabdlnaby/elastdocker](https://github.com/sherifabdlnaby/elastdocker) - [elastic/apm-agent-dotnet](https://github.com/elastic/apm-agent-dotnet) - Elastic APM .NET Agent - [Yegoroff/PlainElastic.Net](https://github.com/Yegoroff/PlainElastic.Net) - Plain .Net client for ElasticSearch ## 🚀 Samples - [elastic/apm-agent-dotnet/SampleAspNetCoreApp](https://github.com/elastic/apm-agent-dotnet/tree/main/sample/SampleAspNetCoreApp) - [mohamadlawand087/Net6-ELK](https://github.com/mohamadlawand087/Net6-ELK) - Use ElasticSearch and Kibana to your AspNetCore 6 API - [damikun/trouble-training](https://github.com/damikun/trouble-training/blob/main/Doc/Identity.md) - FullStack DDD/CQRS with GraphQL workshop including distributed tracing and monitoring. This shows the configuration from React frontend to .Net backend. - [hgmauri/elasticsearch-with-nest](https://github.com/hgmauri/elasticsearch-with-nest) - [stevejgordon/elasticsearch-demo](https://github.com/stevejgordon/elasticsearch-demo) - Demo code (before and after) from my talk "An introduction to Elasticsearch (for .NET developers)". - [AntonioFalcaoJr/Dotnet5.Elasticsearch](https://github.com/AntonioFalcaoJr/Dotnet5.Elasticsearch) ================================================ FILE: docs/microservices/observability/tools/fluent-bit.md ================================================ # Fluent Bit # Videos - [Fluent Bit explained | Fluent Bit vs Fluentd](https://www.youtube.com/watch?v=B2IS-XS-cc0) - [Introduction to fluentbit](https://www.youtube.com/watch?v=3ELc1helke4) - [Deep Dive Fluent Bit: Logging & Stream Processing - Eduardo Silva, ARM Treasure Data](https://www.youtube.com/watch?v=xKbVBUMnJH0) - [How to configure Fluentbit to collect Logs for our K8S cluster ?](https://www.youtube.com/watch?v=KJlWV5-o8v0) - [Monitor Kubernetes Logs using EFK stack - Elasticsearch, FluentBit & Kibana](https://www.youtube.com/watch?v=8nWh1GLd7nY) ================================================ FILE: docs/microservices/observability/tools/fluentd.md ================================================ # Fluentd ## 📺 Videos - [How Fluentd simplifies collecting and consuming logs | Fluentd simply explained](https://www.youtube.com/watch?v=5ofsNyHZwWE) - [Introduction to Fluentd: Collect logs and send almost anywhere](https://www.youtube.com/watch?v=Gp0-7oVOtPw) - [How to install EFK stack using Docker with Fluentd](https://www.youtube.com/watch?v=MNId4HG0wV8) ================================================ FILE: docs/microservices/observability/tools/loki.md ================================================ # Grafana Loki ## 📕 Articles - [Collect and Query your Kubernetes Cluster Logs with Grafana Loki](https://www.programmingwithwolfgang.com/collect-and-query-kubernetes-logs-with-grafana-loki) - [.NET Core Microservice Logging with Grafana and Loki](https://medium.com/c-sharp-progarmming/net-core-microservice-logging-with-grafana-and-loki-92cd2783ed88) ## 📺 Videos - [Grafana Loki: Like Prometheus, But for logs. - Tom Wilkie, Grafana Labs](https://www.youtube.com/watch?v=CQiawXlgabQ) - [Getting started with Grafana Loki in Kubernetes](https://www.youtube.com/watch?v=UM8NiQLZ4K0) - [How to collect logs in k8s with Loki and Promtail](https://www.youtube.com/watch?v=XHexyDqa_S0) - [Grafana : Loki LogQL](https://www.youtube.com/watch?v=HDpE9v1Syz8) ## 📦 Libraries - [grafana/loki](https://github.com/grafana/loki) - Like Prometheus, but for logs. - [serilog-contrib/serilog-sinks-grafana-loki](https://github.com/serilog-contrib/serilog-sinks-grafana-loki) - A Serilog sink sending log events to Grafana Loki - [JosephWoodward/Serilog-Sinks-Loki](https://github.com/JosephWoodward/Serilog-Sinks-Loki) - A Serilog Sink for Loki, Grafana's new Prometheus inspired log aggregator ## 🚀 Samples - [arkapravasinha/GrafProm](https://github.com/arkapravasinha/GrafProm) ================================================ FILE: docs/microservices/resiliency/high-availibility.md ================================================ # High Availability ## 📘 Resources - [Cloud design patterns that support reliability](https://docs.microsoft.com/en-us/azure/architecture/framework/resiliency/reliability-patterns) ## 📕 Articles - [Improving Application Availability: The Basics](https://medium.com/ssense-tech/improving-application-availability-the-basics-f6c3365235fc) - [Improving Application Availability: Redundancy and Persistence](https://medium.com/ssense-tech/improving-application-availability-redundancy-and-persistence-e68d1f891dc4) - [Improving Your Application Availability — Graceful Degradation and Asynchronous Processing](https://medium.com/ssense-tech/improving-your-application-availability-graceful-degradation-and-asynchronous-processing-c4356eb5dc07) - [Improving Your Application Availability — Active-Active Patterns](https://medium.com/ssense-tech/improving-your-application-availability-active-active-patterns-20eaa6f9d57e) - [Deployment stamps pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/deployment-stamp) - [Geodes Pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/geodes) - [Health Endpoint Monitoring Pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/health-endpoint-monitoring) - [Bulkhead Pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/bulkhead) - [Circuit Breaker Pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker) - [Throttling Pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/throttling) - [Queue-Based Load Leveling Pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/queue-based-load-leveling) - [Improving Microservices Availability](https://www.ledjonbehluli.com/posts/improving_microservices_availability/) - [Improving Monolith's Availability](https://www.ledjonbehluli.com/posts/improving_monoliths_availability/) ================================================ FILE: docs/microservices/resiliency/idempotency.md ================================================ # Idempotency ## 📕 Articles - [Idempotent Processor](https://www.cloudcomputingpatterns.org/idempotent_processor/) - [Idempotent Receiver](https://www.enterpriseintegrationpatterns.com/patterns/messaging/IdempotentReceiver.html) - [Idempotency for Fault-Tolerant Web APIs](https://www.dotnetnakama.com/blog/idempotency-for-fault-tolerant-web-apis/) - [.NET IdempotentAPI 1.0.0 Release Candidate](https://www.dotnetnakama.com/blog/dot-net-idempotent-api-1-0-0-release-candidate/) - [Handling duplicate messages using the Idempotent consumer pattern](https://chrisrichardson.net/post/microservices/patterns/2020/10/16/idempotent-consumer.html) - [A simple trick for idempotency handling in the Elastic Search read model](https://event-driven.io/en/simple_trick_for_idempotency_handling_in_elastic_search_readm_model/) - [Dealing with Eventual Consistency and Idempotency in MongoDB projections](https://event-driven.io/en/dealing_with_eventual_consistency_and_idempotency_in_mongodb_projections/) - [HTTP protocol for exactly-once processing](https://exactly-once.github.io/posts/exactly-once-http/) - [Achieving Idempotency: There Are More Ways Than You Think](https://medium.com/@mbneto/achieving-idempotency-there-are-more-ways-than-you-think-12c832f76841) ## 📦 Libraries - [ikyriak/IdempotentAPI](https://github.com/ikyriak/IdempotentAPI) - A .NET library that handles the HTTP write operations (POST and PATCH) that can affect only once for the given request data and idempotency-key by using an ASP.NET Core attribute (filter). ================================================ FILE: docs/microservices/resiliency/resiliency.md ================================================ # Resiliency ## 📕 Articles - [Transient fault handling](https://docs.microsoft.com/en-us/azure/architecture/best-practices/transient-faults) - [Building resilient applications with Polly](http://elvanydev.com/resilience-with-polly/) ⭐ - [Simmy Chaos Engine for .NET – Part 1, Injecting Faults](https://nodogmablog.bryanhogan.net/2019/07/simmy-chaos-engine-for-net-part-1-injecting-faults/) - [Simmy Chaos Engine for .NET – Part 2, Resilience and Injected Faults](https://nodogmablog.bryanhogan.net/2019/07/simmy-chaos-engine-for-net-part-2-resilience-and-injected-faults/) - [Simmy Chaos Engine for .NET – Part 3, Adding Latency](https://nodogmablog.bryanhogan.net/2019/08/simmy-chaos-engine-for-net-part-3-adding-latency/) - [Chaos Engineering your .NET applications using Simmy](http://josephwoodward.co.uk/2020/01/chaos-engineering-your-dot-net-application-simmy) - [Resiliency and high availability in microservices](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/resilient-high-availability-microservices) - [Implement resilient applications](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/) - [Handle partial failure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/handle-partial-failure) - [Strategies to handle partial failure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/partial-failure-strategies) - [Resiliency and high availability in microservices](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/resilient-high-availability-microservices) - [Implement resilient applications](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/) - [Handle partial failure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/handle-partial-failure) - [Strategies to handle partial failure](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/partial-failure-strategies) - [Creating Resilient Microservices in .NET with Polly](https://code-maze.com/creating-resilient-microservices-in-net-with-polly/) ⭐ - [Microservice resilience – Circuit Breaker using polly in .Net Core](https://dotnetcorecentral.com/blog/microservice-resilience-circuit-breaker-using-polly-in-net-core/) - [Resiliency Patterns in Microservice Architecture](https://www.gokhan-gokalp.com/en/resiliency-patterns-in-microservice-architecture/) - [Cross-Cutting Concerns with MediatR Pipeline Behaviors](https://anderly.com/2019/12/12/cross-cutting-concerns-with-mediatr-pipeline-behaviors/) ⭐ - [Caching behavior with MediatR](https://fredrikronnehag.netlify.app/caching-mediatr/) - [MediatR: how to use Decorators to add retry policies](https://www.davidguida.net/mediatr-how-to-use-decorators-to-add-retry-policies/) - [Refactoring Towards Resilience: A Primer](https://jimmybogard.com/refactoring-towards-resilience-a-primer/) - [Refactoring Towards Resilience: Evaluating Stripe Options](https://jimmybogard.com/refactoring-towards-resilience-evaluating-stripe-options/) - [Refactoring Towards Resilience: Evaluating SendGrid Options](https://jimmybogard.com/refactoring-towards-resilience-evaluating-sendgrid-options/) - [Refactoring Towards Resilience: Evaluating RabbitMQ Options](https://jimmybogard.com/refactoring-towards-resilience-evaluating-rabbitmq-options/) - [Refactoring Towards Resilience: Evaluating Coupling](https://jimmybogard.com/refactoring-towards-resilience-evaluating-coupling/) - [Refactoring Towards Resilience: Process Manager Solution](https://jimmybogard.com/refactoring-towards-resilience-process-manager-solution/) - [Fault Handling with Polly – A Beginners Guide](https://dotnetplaybook.com/fault-handling-with-polly-a-beginners-guide/) - [Improve resilience in the .NET applications](https://medium.com/@emanuele.bucarelli/improve-resilience-in-the-net-application-80adda2c7710) ⭐ - [Build Resilient Microservices (Web API) using Polly in ASP.NET Core](https://procodeguide.com/programming/polly-in-aspnet-core/) - [Strategies to Handle Transient Faults in Web APIs](https://www.dotnetnakama.com/blog/strategies-to-handle-transient-faults-in-web-apis/) - [Best practices with HttpClient and Retry Policies with Polly in .NET Core 2, Part 1](http://anthonygiretti.com/2019/03/26/best-practices-with-httpclient-and-retry-policies-with-polly-in-net-core-2-part-1/) ⭐ - [Best practices with HttpClient and Retry Policies with Polly in .NET Core 2, Part 2](https://anthonygiretti.com/2019/03/26/best-practices-with-httpclient-and-retry-policies-with-polly-in-net-core-2-part-2/) ⭐ - [WORKING WITH POLLY – USING THE CONTEXT TO OBTAIN THE RETRY COUNT FOR DIAGNOSTICS](https://www.stevejgordon.co.uk/polly-using-context-to-obtain-retry-count-diagnostics) - [gRPC & ASP.NET Core 3.1: Resiliency with Polly](https://anthonygiretti.com/2020/03/31/grpc-asp-net-core-3-1-resiliency-with-polly/) ⭐ - [ASP.NET Core 6: Handling gRPC exception correctly server side](https://anthonygiretti.com/2022/08/28/asp-net-core-6-handling-grpc-exception-correctly-server-side/) ⭐ - [Using Polly for .NET Resilience and Transient-Fault-Handling with .NET Core](https://www.telerik.com/blogs/using-polly-for-net-resilience-and-transient-fault-handling-with-net-core) ⭐ - [Optimally Configuring ASP.NET Core HttpClientFactory](https://rehansaeed.com/optimally-configuring-asp-net-core-httpclientfactory/) ⭐ - [Making Microservices Fault Tolerant with Code Examples](https://harshmatharu.com/blog/fault-tolerance-in-microservices) - [Introduction to resilient app development](https://learn.microsoft.com/en-us/dotnet/core/resilience/) - [Build resilient HTTP apps: Key development patterns](https://learn.microsoft.com/en-us/dotnet/core/resilience/http-resilience) ## 📺 Videos - [Handling Failures in Message Driven Architecture](https://www.youtube.com/watch?v=SesEYHGhlLQ) - [Make your microservice resilient with Polly's Circuit Breaker | .NET Core](https://www.youtube.com/watch?v=JljTcjt798c) - [Managing Resiliency in Microservices || Full Stack Virtual Conference](https://www.youtube.com/watch?v=DTFvQqQBN2c) - [Life Beyond Distributed Transactions: An Apostate's Implementation - Jimmy Bogard](https://www.youtube.com/watch?v=AUrKofVRHV4) - [Fixing Distributed Systems Fail with Jimmy Bogard](https://www.youtube.com/watch?v=p0M1rrmfrWg) - [The Circuit Breaker Pattern | Resilient Microservices](https://www.youtube.com/watch?v=5_Bt_OEg0no) - [Bulkhead Pattern - Fault Tolerant Microservices](https://www.youtube.com/watch?v=R2FT5edyKOg) - [Circuit Breaker Pattern - Fault Tolerant Microservices](https://www.youtube.com/watch?v=ADHcBxEXvFA) - [Fault Handling with Polly and .NET 6](https://www.youtube.com/watch?v=DSMdUvL8N30) - [POLLY - RESILIENCY and FAULT HANDLING With HTTP Client | Getting Started With ASP.NET Core Series](https://www.youtube.com/watch?v=z6YcU0PW_9E) ## 📦 Libraries - [App-vNext/Polly](https://github.com/App-vNext/Polly) - Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner. From version 6.0.1, Polly targets .NET Standard 1.1 and 2.0+. - [Polly-Contrib/Simmy](https://github.com/Polly-Contrib/Simmy) - Simmy is a chaos-engineering and fault-injection tool, integrating with the Polly resilience project for .NET ## Samples - [RehanSaeed/HttpClientSample](https://github.com/RehanSaeed/HttpClientSample) ⭐ A sample ASP.NET Core project showing how to configure the HttpClientFactory ================================================ FILE: docs/microservices/security/security.md ================================================ # Security ## Articles - [How API Request Signing Works (and how to implement HMAC in NodeJS)](https://blog.andrewhoang.me/how-api-request-signing-works-and-how-to-implement-it-in-nodejs-2/) - [API Security : use HMAC to sign requests](https://alanta.nl/posts/2023/04/api-request-signing-with-hmac) ================================================ FILE: docs/microservices/security/vault.md ================================================ # Vault ## 📕 Articles - [Azure Key Vault configuration provider in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-6.0) - [Secret Management in ASP.Net 5.0 Web APIs](https://technologyleads.io/blog/asp-net-5-web-api-secret-management) ## 📺 Videos - [Secretless apps with .NET and Azure Key Vault](https://www.youtube.com/watch?v=f8Hf-YUrC10) - [How to use Azure Key Vault + .NET Core easily | Secrets, Keys and Certificates - English](https://www.youtube.com/watch?v=RTq72C10x88) - [How to manage secrets in a .NET Core app with HashiCorp Vault - Part 1](https://www.youtube.com/watch?v=K8TnbbsdthQ) - [How to manage secrets in a .NET Core app with HashiCorp Vault - Part 2](https://www.youtube.com/watch?v=6ZkZ98sdDP4) ## 📦 Libraries - [rajanadar/VaultSharp](https://github.com/rajanadar/VaultSharp) - A comprehensive cross-platform .NET Library for HashiCorp's Vault, a secret management tool - [MrZoidberg/VaultSharp.Extensions.Configuration](https://github.com/MrZoidberg/VaultSharp.Extensions.Configuration) - Enables HashiCorp Vault to be used as a configuration source in dotnet core applications ## 🚀 Samples - [hashicorp/hello-vault-dotnet](https://github.com/hashicorp/hello-vault-dotnet) - Runnable C# examples of how to integrate an application with HashiCorp Vault. ================================================ FILE: docs/microservices/services-boundries.md ================================================ # Services Boundaries ## 📘 Resources - [ddd-crew/ddd-starter-modelling-process](https://github.com/ddd-crew/ddd-starter-modelling-process) ## 📕 Articles - [Finding service boundaries: more than just the bounded context](https://www.ben-morris.com/finding-service-boundaries-more-than-just-the-bounded-context - [Heuristics for Identifying Service Boundaries](https://opencredo.com/blogs/identify-service-boundary-heuristics/) - [Chapter 4. Rightsizing Your Microservices: Finding Service Boundaries](https://www.oreilly.com/library/view/microservices-up-and/9781492075448/ch04.html) - [Finding Service Boundaries: The One Rule That Matters](https://medium.com/nick-tune-tech-strategy-blog/finding-service-boundaries-the-one-rule-that-matters-2bd00f4e0c78) - [Identifying microservice boundaries](https://docs.microsoft.com/en-us/azure/architecture/microservices/model/microservice-boundaries) ## 📺 Videos - [Finding your service boundaries - a practical guide - Adam Ralph](https://www.youtube.com/watch?v=tVnIUZbsxWI) - [Carving Microservices out of the Monolith with Domain Storytelling - Henning Schwentner](https://www.youtube.com/watch?v=ggdBPW_DWbE) - [Finding your service boundaries -- a practical guide](https://www.youtube.com/watch?v=655zq4Sdu2w) - [Finding System Boundaries with Domain Storytelling - Stefan Hofer - NDC London 2021](https://www.youtube.com/watch?v=RzyLfDqsgSo) - [Finding your service boundaries - a practical guide - Adam Ralph](https://www.youtube.com/watch?v=jdliXz70NtM) - [Context is King | Finding Service Boundaries Talk](https://www.youtube.com/watch?v=dnhshUdRW70) - [Defining Service Boundaries by Splitting Entities](https://www.youtube.com/watch?v=lGvYHmvXiyk) - [DevTernity 2019: Adam Ralph – Finding Your Service Boundaries – A Practical Guide](https://www.youtube.com/watch?v=tO6YAQXVzyU) - [SOA, Microservices, Service Boundaries | Adam Ralph | Loosely Coupled](https://www.youtube.com/watch?v=IqhtDHPa4ds) - [Building Modular Monolith with ASP.NET Core, .NET 5 and C# 9 - Event Storming Big Picture #Live 1](https://www.youtube.com/watch?v=PLC8xPbEcac) - [Building Modular Monolith with ASP.NET Core, .NET 5 and C# 9 - Event Storming Process Level #Live 2](https://www.youtube.com/watch?v=DuNKI4G42Oo) - [Building Modular Monolith with ASP.NET Core, .NET 5 and C# 9 - Event Storming Process/Design #Live 3](https://www.youtube.com/watch?v=nUgcrEO0xpk) - [Building Modular Monolith with ASP.NET Core, .NET 5 and C# 9 - Event Storming summary #Live 4](https://www.youtube.com/watch?v=fIOMxBc4-fI) - [Bounded Contexts, Microservices, and Everything In Between - Vladik Khononov - KanDDDinsky 2018](https://www.youtube.com/watch?v=dlnu5pSsg7k) - [DDD & Microservices: At Last, Some Boundaries! • Eric Evans • GOTO 2015](https://www.youtube.com/watch?v=yPvef9R3k-M) - [Microservices gets it WRONG defining Service Boundaries](https://www.youtube.com/watch?v=Uc7SLJbKAGo) ================================================ FILE: docs/microservices/testing.md ================================================ # Testing ## 📕 Articles - [Unit and integration testing](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Unit-and-integration-testing) - [Microservices test architecture. Can you sleep well without end-to-end tests?](https://threedots.tech/post/microservices-test-architecture/) - [Cloud-based load testing service end of life](https://devblogs.microsoft.com/devops/cloud-based-load-testing-service-eol/) - [Load testing](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Load-testing) - [Testing ASP.NET Core services and web apps](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/test-aspnet-core-services-web-apps) ## 📺 Videos - [Contract Testing Made Easy: Master Pact for Microservices in C# with Irina Scurtu | .NET Days 2024](https://www.youtube.com/watch?v=Hk-XxjIB8Vg) ⭐ - [Pimp your testing strategy for micro services](https://www.youtube.com/watch?v=mjpCsL-Wpos) ================================================ FILE: docs/microservices/tools/aspire.md ================================================ # Aspire ## Resources - [Asipre Docs](https://learn.microsoft.com/en-us/dotnet/aspire/) - [aspireify.net](https://aspireify.net/) - .NET Aspire News, Samples and Tutorials ## Articles - [.NET Aspire overview](https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview) - [Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8](https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8/) - [Announcing .NET Aspire Preview 2](https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-preview-2/) - [.NET Aspire preview 3](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/preview-3) - [.NET Aspire preview 4](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/preview-4) - [.NET Aspire preview 5](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/preview-5) - [.NET Aspire preview 6](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/preview-6) - [Why I won't use .NET Aspire for now](https://event-driven.io/en/nay_to_aspire/) - [.NET Aspire dashboard is the best tool to visualize your OpenTelemetry data during local development](https://anthonysimmon.com/dotnet-aspire-dashboard-best-tool-visualize-opentelemetry-local-dev/) - [.NET Aspire telemetry](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/telemetry) - [Transactional Outbox in .NET Cloud Native Development via Aspire](https://nikiforovall.github.io/dotnet/aspnetcore/aspire/2024/03/30/aspire-cap.html) - [.NET Aspire dashboard overview](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard) - [Standalone Aspire dashboard sample app](https://learn.microsoft.com/en-us/samples/dotnet/aspire-samples/aspire-standalone-dashboard/) - [General Availability of .NET Aspire: Simplifying .NET Cloud-Native Development](https://devblogs.microsoft.com/dotnet/dotnet-aspire-general-availability/) - [Learn .NET Aspire by example: Polyglot persistence featuring PostgreSQL, Redis, MongoDB, and Elasticsearch](https://nikiforovall.github.io/dotnet/aspire/2024/06/18/polyglot-persistance-with-aspire.html) - [Adding .NET Aspire to your existing .NET apps](https://devblogs.microsoft.com/dotnet/adding-dotnet-aspire-to-your-existing-dotnet-apps/) - [Introducing the .NET Aspire Community Toolkit](https://devblogs.microsoft.com/dotnet/introducing-the-dotnet-aspire-community-toolkit/) - [Using Local AI models with .NET Aspire](https://devblogs.microsoft.com/dotnet/local-ai-models-with-dotnet-aspire/) - [.NET Aspire dashboard overview](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/overview) - [Standalone .NET Aspire dashboard](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/standalone) - [Explore the .NET Aspire dashboard](https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/explore) - [What’s new in .NET Aspire 8.1 for cloud native developers!](https://devblogs.microsoft.com/dotnet/whats-new-in-aspire-8-1/) - [What's new in .NET Aspire 9.0](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/dotnet-aspire-9) - [What's new in .NET Aspire 9.1](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/dotnet-aspire-9.1) - [.NET Aspire 9.2 is Now Available with New Ways to Deploy](https://devblogs.microsoft.com/dotnet/dotnet-aspire-92-is-now-available-with-new-ways-to-deploy/) - [What's new in .NET Aspire 9.2](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/dotnet-aspire-9.2) - [What's new in .NET Aspire 9.3](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/dotnet-aspire-9.3) - [What's new in .NET Aspire 9.4](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/dotnet-aspire-9.4) - [What's new in Aspire 9.5](https://learn.microsoft.com/en-us/dotnet/aspire/whats-new/dotnet-aspire-9.5) - [Announcing Aspire 9.5](https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-95/) - [Converting a docker-compose file to .NET Aspire](https://andrewlock.net/converting-a-docker-compose-file-to-aspire/) - [What is .NET Aspire service discovery?](https://learn.microsoft.com/en-us/shows/dotnet-aspire-2024/what-is-dotnet-aspire-service-discovery) - [.NET Aspire 9.2 is Now Available with New Ways to Deploy](https://devblogs.microsoft.com/dotnet/dotnet-aspire-92-is-now-available-with-new-ways-to-deploy/) - [.NET 8, Aspire, & Aspir8: Deploy Microservices Into Dev Environments Effortlessly with CLI — No Dockerfiles or YAML Needed! Plus, a Little Yarp](https://medium.com/@josephsims1/aspire-aspi8-deploy-microservices-effortlessly-with-cli-no-docker-or-yaml-needed-f30b58443107) - [Bridging the Gap: The Future of Aspire](https://medium.com/@davidfowl/bridging-the-gap-the-future-of-aspire-6eb421a92ab8) - [Exploring the Microsoft Developer Control Plane at the heart of the new .NET Aspire](https://anthonysimmon.com/exploring-microsoft-developer-control-plane-core-dotnet-aspire-dotnet-8/) - [How Workleap uses .NET Aspire to transform local development](https://anthonysimmon.com/dotnet-aspire-at-workleap/) - [Aspire: A Modern DevOps Toolchain](https://medium.com/@davidfowl/aspire-a-modern-devops-toolchain-fa5aac019d64) ## Videos - [Building Cloud Native apps with .NET 8 | .NET Conf 2023](https://www.youtube.com/watch?v=z1M-7Bms1Jg) - [.NET Aspire Community Standup - .NET Aspire Update](https://www.youtube.com/live/KEcUfMbCgpA) - [.NET Aspire Community Standup - .NET Aspire Update](https://www.youtube.com/live/KEcUfMbCgpA) - [.NET Aspire Community Standup - .NET Aspire in action](https://www.youtube.com/live/kAF9No5KZrg) - [.NET Aspire Community Standup: .NET Aspire Update](https://www.youtube.com/live/Osf7_ZxRlvw) - [What Is .NET Aspire? The Insane Future of .NET!](https://www.youtube.com/watch?v=DORZA_S7f9w) - [WHY and HOW to Add .NET Aspire to ANY .NET API and Web App in Minutes](https://www.youtube.com/watch?v=fN3ufsIF7vs) - [ASP.NET Community Standup: .NET Aspire Update](https://www.youtube.com/watch?v=Osf7_ZxRlvw) - [Let's Learn .NET Aspire](https://www.youtube.com/watch?v=8i3FaHChh20) - [.NET Aspire Developers Day 2024](https://learn.microsoft.com/en-us/shows/dotnet-aspire-developers-day-2024/) - [Demystify cloud-native development with .NET Aspire](https://www.youtube.com/watch?v=jVILDZtuUrI) - [Cloud development doesn't have to be painful, thanks to .NET Aspire - 28 April 2025](https://www.youtube.com/watch?v=nNlZwx8iBIc) - [Running .NET Aspire on a local Kubernetes cluster - Nov 19 2024](https://www.youtube.com/watch?v=zr2O4uZ3tK8) - [Use .NET Aspire to create Generative AI Cloud Native Solutions - Nov 19 2024](https://www.youtube.com/watch?v=bIl46pFf_1E) - [Getting Started with OpenTelemetry in .NET Aspire - Nov 19 2024](https://www.youtube.com/watch?v=4xMIROBECRw) - [Aspirations for .NET Aspire - Nov 15 2024](https://www.youtube.com/watch?v=vv8n3-46gE0) - [Build your own .NET Aspire integrations](https://www.youtube.com/watch?v=XMrtdRaxnOM) - [What's new in .NET Aspire - Nov 14, 2024](https://www.youtube.com/watch?v=fiePiEc1qcU) - [Deployment Options for .NET Aspire Apps - Aug 14, 2024](https://www.youtube.com/watch?v=ZHr3LK6DK5Q) - [Everything about Database and .NET Aspire - Aug 13, 2024](https://www.youtube.com/watch?v=tQ9wktm9BQA) - [Harness the power of .NET Aspire Components - Aug 13, 2024](https://www.youtube.com/watch?v=istmgTDtSSQ) - [Secrets, Security, and Keycloak in .NET Aspire - Aug 14, 2024](https://www.youtube.com/watch?v=xjsB8dOLV-I) - [Aspire for AI Applications](https://www.youtube.com/watch?v=7nQCRRYp44k) ## Tools - [prom3theu5/aspirational-manifests](https://github.com/prom3theu5/aspirational-manifests) - Handle deployments of .NET Aspire AppHost Projects - [martinjt/aspire-app-extension](https://github.com/martinjt/aspire-app-extension) - [aws/integrations-on-dotnet-aspire-for-aws](https://github.com/aws/integrations-on-dotnet-aspire-for-aws) - This repositry contains the integrations with .NET Aspire for AWS. - [CommunityToolkit/Aspire](https://github.com/CommunityToolkit/Aspire) - A community project with additional components and extensions for .NET Aspire - [aspirant-project/aspirant](https://github.com/aspirant-project/aspirant) - Extensions for .NET Aspire ## Samples - [dotnet/aspire-samples](https://github.com/dotnet/aspire-samples) - [davidfowl/aspiresample](https://github.com/davidfowl/aspiresample) - [event-driven-dotnet/EventDriven.ReferenceArchitecture](https://github.com/event-driven-dotnet/EventDriven.ReferenceArchitecture) - [Depechie/OpenTelemetryGrafana](https://github.com/Depechie/OpenTelemetryGrafana) - OpenTelemetry and Grafana stack - [Djoufson/booky](https://github.com/Djoufson/booky) - Booky is an opinionated open source project to showcase microservices best practices from my (Djoufson) personal experience and preferences. - [laurentkempe/aspirePlayground](https://github.com/laurentkempe/aspirePlayground) - Some experiments around .NET Aspire to learn. - [oskardudycz/EventSourcing.NetCore/Sample/ECommerce](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/ECommerce) - [NikiforovAll/social-media-app-aspire](https://github.com/NikiforovAll/social-media-app-aspire) - Polyglot persistence via Aspire - [thangchung/practical-dotnet-aspire](https://github.com/thangchung/practical-dotnet-aspire) - The practical .NET Aspire builds on the coffeeshop app business domain - [dotnet/aspire-samples/AspireShop](https://github.com/dotnet/aspire-samples/tree/main/samples/AspireShop) - [cecilphillip/shadowshop](https://github.com/cecilphillip/shadowshop) - Sample estore application using Stripe and Temporal. Orchestrated with .NET Aspire. - [dotnet/eShop](https://github.com/dotnet/eShop) - A reference .NET application implementing an eCommerce - [dotnet/eShopSupport](https://github.com/dotnet/eShopSupport) - A reference .NET application using AI for a customer support ticketing system - [Azure-Samples/eShopOnAzure](https://github.com/Azure-Samples/eShopOnAzure) - A variant of https://github.com/dotnet/eShop that uses Azure services - [dotnet/eShop](https://github.com/dotnet/eShop) - A reference .NET application implementing an eCommerce site - [dotnet-presentations/eshop-app-workshop](https://github.com/dotnet-presentations/eshop-app-workshop) - This workshop will teach you ASP.NET Core & .NET Aspire by building the product catalog & order placement features of the eShop reference application. - [foxminchan/BookWorm](https://github.com/foxminchan/BookWorm) - The practical implementation of .NET Aspire using Microservices - [foxminchan/CoolShop](https://github.com/foxminchan/CoolShop) - A cloud-native e-commerce app built on Dapr and Aspire - [devkimchi/aspir8-from-scratch](https://github.com/devkimchi/aspir8-from-scratch) - Let's deploy Aspire-flavoured apps to a Kubernetes cluster, through Aspir8! - [codebytes/build-with-aspire](https://github.com/codebytes/build-with-aspire) - [Azure-Samples/aspire-semantic-kernel-basic-chat-app](https://github.com/Azure-Samples/aspire-semantic-kernel-basic-chat-app) - [Azure-Samples/eShopLite](https://github.com/Azure-Samples/eShopLite) - eShopLite is a set of reference .NET applications implementing an eCommerce site with features like Semantic Search, MCP, Reasoning models and more. - [mehmetozkaya/eshop-distributed](https://github.com/mehmetozkaya/eshop-distributed) - Develop AI-Powered Distributed Architectures using .NET Aspire and GenAI to develop EShop Catalog and Basket microservices integrate with Backing services including PostgreSQL, Redis, RabbitMQ, Keycloak, Ollama and Semantic Kernel to Create Intelligent E-Shop Solutions. - [captainsafia/AspireAzureFunctionsSample](https://github.com/captainsafia/AspireAzureFunctionsSample) - A sample project for the Aspire and Azure Functions integration - [josephaw1022/YarpApiGatewayWithAspireSpike](https://github.com/josephaw1022/YarpApiGatewayWithAspireSpike) - [MicrosoftDocs/mslearn-aspire-starter](https://github.com/MicrosoftDocs/mslearn-aspire-starter) - Starter app for .NET Aspire training modules ================================================ FILE: docs/microservices/tools/cap.md ================================================ # CAP ## Resources - [Cap GitHub](https://github.com/dotnetcore/CAP) ## Articles - [Efficient Event Communication: Implementing Event Bus and Outbox Patterns with CAP in .NET Core Microservices](https://dev.to/ahmedshahjr/efficient-event-communication-implementing-event-bus-and-outbox-patterns-with-cap-in-net-core-microservices-36oe) ## 🚀 Samples - [MesutAtasoy/Joker](https://github.com/MesutAtasoy/Joker) - An example of microservices container based application which implemented different approaches within each microservice (DDD, CQRS, Simple CRUD) - [dcomartin/CAP.Demo](https://github.com/dcomartin/CAP.Demo) - Simple possible demo of CAP using MySQL and RabbitMQ ================================================ FILE: docs/microservices/tools/dapr.md ================================================ # Dapr ## 📘 Resources - [GitHub Page](https://github.com/dapr/dapr) - [Dapr Youtube](https://www.youtube.com/channel/UCtpSQ9BLB_3EXdWAUQYwnRA/videos) - [mstrYoda/awesome-dapr](https://github.com/mstrYoda/awesome-dapr) - A cruated list of awesome Dapr application runtime related tools. - [dapr/quickstarts](https://github.com/dapr/quickstarts) - Dapr quickstart code samples and tutorials showcasing core Dapr capabilities ## 📕 Articles - [Make microservices fun again with Dapr](https://daveabrock.com/2021/04/29/meet-dapr) - [Getting started with Dapr for .NET Developers](https://laurentkempe.com/2021/03/09/getting-started-with-dapr-for-dotnet-developers/) - [Service to service invocation with Dapr .NET SDK](https://laurentkempe.com/2021/03/16/service-to-service-invocation-with-dapr-dotnet-sdk/) - [Service to service invocation with Refit and Dapr .NET SDK](https://laurentkempe.com/2021/03/18/service-to-service-invocation-with-refit-and-dapr-dotnet-sdk/) - [Using Service Invocation from Dapr .NET SDK](https://laurentkempe.com/2021/03/11/using-service-invocation-from-dapr-dotnet-sdk/) - [Calling Dapr service with gRPC](https://laurentkempe.com/2021/03/25/calling-dapr-service-with-grpc/) - [Make microservices fun again with Dapr](https://www.daveabrock.com/2021/04/29/meet-dapr/) - [How to make Dapr client works well with Refit and RestEase in 5 minutes](https://dev.to/thangchung/how-to-make-dapr-client-works-well-with-refit-and-restease-40m) - [Debugging Dapr application using Tye tool](https://dev.to/thangchung/debugging-dapr-application-using-tye-tool-1djb) - [.NET gRPC Server on Dapr runtime](https://dev.to/thangchung/net-grpc-server-on-dapr-runtime-3ba6) - [Getting started with .net core microservices with dapr](https://garywoodfine.com/getting-started-with-net-core-microservices-with-dapr/) - [How services work in Dapr](https://garywoodfine.com/how-services-work-in-dapr/) - [Building an event-driven .NET Core app with Dapr](https://medium.com/polarsquad/building-an-event-driven-net-core-app-with-dapr-58cc83ab120b) - [Debugging Dapr applications with Visual Studio Code](https://blog.ehn.nu/2020/03/debugging-dapr-applications-with-visual-studio-code/) - [Free eBook: How to use Dapr for .NET Developers](https://www.hanselman.com/blog/free-ebook-how-to-use-dapr-for-net-developers) - [Exploring Dapr: Pub/Sub – Part 2: ASP.NET Core integration](https://yourazurecoach.com/2019/12/27/exploring-dapr-pub-sub-part-2-asp-net-core-integration/) - [Exploring Dapr: Pub/Sub – Part 1: Introduction](https://yourazurecoach.com/2019/12/26/exploring-dapr-pub-sub-part-1-introduction/) - [Exploring Dapr: Pub/Sub – Part 3: Azure Service Bus](https://yourazurecoach.com/2019/12/27/exploring-dapr-pub-sub-part-3-azure-service-bus/) - [Exploring Dapr: Running your first Dapr app in Kubernetes!](https://yourazurecoach.com/2019/12/30/exploring-dapr-running-your-first-dapr-app-in-kubernetes/) - [Simplify microservices with Dapr (Distributed Application Runtime)](https://www.gatevnotes.com/simplify-microservices-development-with-dapr-distributed-application-runtime/) - [Understanding the Dapr Workflow engine & authoring workflows in .NET](https://www.diagrid.io/blog/authoring-dapr-workflows-in-dotnet) ## 📺 Videos - [On .NET Live - Microservice applications with DAPR and .NET](https://www.youtube.com/watch?v=kIfmwmJHNMs) - [Azure Singapore - Building distributed cloud native application with Dapr](https://www.youtube.com/watch?v=w_SaZ-e_1Vg) - [.NET Microservices with DAPR](https://channel9.msdn.com/Shows/On-NET/NET-Microservices-with-DAPR) - [Alex Thissen — Dapr for building distributed .NET Core applications](https://www.youtube.com/watch?v=FyFr5HzsQXE) - [Adding a Little DAPR to Your .NET Microservices](https://channel9.msdn.com/Events/dotnetConf/Focus-on-Microservices/Adding-a-Little-DAPR-to-Your-NET-Microservices) - [Postponing architectural choices and start developing first with Dapr - Michaël Hompus](https://www.youtube.com/watch?v=biT5-mQ2ekc) - [Ask the Expert: Microservices Made Easy With Dapr](https://www.youtube.com/watch?v=KOpKW11-mg8) - [Building Distributed Applications with .NET and Dapr](https://www.youtube.com/watch?v=4vUBnlEr4p4) - [Alex Thissen — Dapr for building distributed .NET Core applications](https://www.youtube.com/watch?v=FyFr5HzsQXE) - [Learn all about the latest features in Dapr](https://www.youtube.com/watch?v=I7A1bdoKV5M) - [Distributed Application Runtime, Introduction for .Net Developers](https://www.youtube.com/watch?v=ruQFIPZl2QM) - [Building reliable and portable microservices with Dapr and .NET](https://www.youtube.com/watch?v=Cb0tyU9uSLQ) - [Sidecar Pattern to SIMPLIFY services or just more COMPLEXITY?](https://www.youtube.com/watch?v=9zAjtcf9Wyo) - [Introduction to Dapr](https://www.youtube.com/watch?v=nK8Ss2UMAxc) - [Using Consul for Name Resolution in Dapr](https://markheath.net/post/dapr-consul-name-resolution) ## 📦 Libraries - [dapr/dashboard](https://github.com/dapr/dashboard) - General purpose dashboard for Dapr - [event-driven-dotnet/EventDriven.EventBus.Dapr](https://github.com/event-driven-dotnet/EventDriven.EventBus.Dapr) - Event bus abstraction over Dapr pub/sub ## 🚀 Samples - [dotnet-architecture/eShopOnDapr](https://github.com/dotnet-architecture/eShopOnDapr) - A sample .NET Core distributed application based on eShopOnContainers, powered by Dapr. - [vietnam-devs/coolstore-microservices](https://github.com/vietnam-devs/coolstore-microservices) - A full-stack .NET microservices build on Dapr and Tye - [thangchung/practical-dapr](https://github.com/thangchung/practical-dapr) - A full-stack .NET microservices build on Dapr and Tye - [kimcu-on-thenet/dapr-tye-simple-microservices](https://github.com/kimcu-on-thenet/dapr-tye-simple-microservices) - An example of building .NET Core microservices with Dapr and Tye - [alugili/ModernArchitectureShop](https://github.com/alugili/ModernArchitectureShop) - The Microservices Online Shop is an application with a modern software architecture that is cleanly designed and based on.NET lightweight technologies. The shop has two build variations. The first variant is the classic Microservices Architectural Style. The second one is with Dapr. Dapr has a comprehensive infrastructure - [thangchung/clean-architecture-dotnet](https://github.com/thangchung/clean-architecture-dotnet) - Dev: Apply Minimal Clean Architecture with DDD-lite, CQRS-lite, and just enough Cloud-native patterns on eCommerce sample business domain. 🍻 Ops: Use Tye with Dapr extension to deploy it to Kubernetes. - [trumhemcut/dapr-microservices](https://github.com/trumhemcut/dapr-microservices) - Leverage the power of Dapr to build microservices on AKS - [benc-uk/dapr-store](https://github.com/benc-uk/dapr-store) - Sample application showcasing the use of Dapr to build microservices based apps - [alphayu/adnc](https://github.com/alphayu/adnc) - The microservice framework is also suitable for the development of monolithic systems. It supports the classic three-layer and DDD architecture development model, and integrates a series of mainstream and stable microservice supporting technology stacks. A framework with front-end and back-end separation, the front-end is based on Vue, and the back-end is built on .Net 5.0. - [sjefvanleeuwen/showcase](https://github.com/sjefvanleeuwen/showcase) - A Full Stack Journey with Micro Services and Micro Front Ends. Using dapr, kubernetes, react module federation and web assembly - [jbw/TooBigToFailBurgerShop](https://github.com/jbw/TooBigToFailBurgerShop) - .NET Microservice Reference Application. It's also an over-engineered burger shop! - [baotoq/micro-commerce](https://github.com/baotoq/micro-commerce) - React, Nextjs, ASP.NET Core 5.0, IdentityServer, Dapr, Azure pipeline, K8S, SonarQube - [andreatosato/dapr-cloudchampion](https://github.com/andreatosato/dapr-cloudchampion) - [thangchung/coffeeshop-on-dapr](https://github.com/thangchung/coffeeshop-on-dapr) - The coffeeshop event-driven application which is developed and run on Dapr - [edwinvw/dapr-workshop](https://github.com/edwinvw/dapr-workshop) - Workshop that teaches how to apply Dapr to an existing .NET, Java or Python based microservices application. - [EdwinVW/dapr-workshop-csharp](https://github.com/EdwinVW/dapr-workshop-csharp) - Source code for the .NET version of the Dapr workshop (see README for more info). - [markheath/globoticket-dapr](https://github.com/markheath/globoticket-dapr) - A simple Dapr demo microservices application - [thangchung/coffeeshop-dapr-workflow](https://github.com/thangchung/coffeeshop-dapr-workflow) - Opinionated coffeeshop application builds with Dapr workflow - [thangchung/dapr-labs](https://github.com/thangchung/dapr-labs) - Many forms of coffeeshop implemented by C#, Rust, Spin on Dapr ## 📚 Books - [Dapr for .NET Developers](https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/?WT.mc_id=-blog-scottha) - [Practical Microservices with Dapr and .NET: A developer's guide to building cloud-native applications using the Dapr event-driven runtime](https://www.amazon.com/Practical-Microservices-Dapr-NET-cloud-native-ebook/dp/B08P5L81X8/) ================================================ FILE: docs/microservices/tools/mass-transit.md ================================================ # MassTransit ## 📘 Resources - [MassTransit GitHub](https://github.com/MassTransit/MassTransit) ## 📕 Articles - [Pattern: Transactional outbox](https://microservices.io/patterns/data/transactional-outbox.html) - [MassTransit–Use record types for your message contracts](https://bartwullems.blogspot.com/2021/06/masstransituse-record-types-for-your.html) - [MassTransit 6–Serilog integration](https://bartwullems.blogspot.com/2020/01/masstransit-6serilog-integration.html) - [MassTransit–How to test consumers with dependencies](https://bartwullems.blogspot.com/2021/02/masstransithow-to-test-consumers-with.html) - [MassTransit Send vs. Publish](https://www.maldworth.com/2015/10/27/masstransit-send-vs-publish/) - [Message Topology](https://masstransit-project.com/advanced/topology/message.html) - [RabbitMQ](https://masstransit-project.com/advanced/topology/rabbitmq.html) - [Building an Event Driven .NET Application: Setting Up MassTransit and RabbitMQ](https://wrapt.dev/blog/building-an-event-driven-dotnet-application-setting-up-masstransit-and-rabbitmq) - [Using MassTransit with RabbitMQ in ASP.NET Core](https://code-maze.com/masstransit-rabbitmq-aspnetcore/) - [Publishing messages](https://masstransit-project.com/understand/publishing.html) - [Key concepts](https://masstransit-project.com/understand/key-ideas.html) - [Under the hood](https://masstransit-project.com/understand/under-the-hood.html) - [Ability to exclude interfaces/classes from topic/exchange creation](https://github.com/MassTransit/MassTransit/issues/2018) - [Kafka - Riders](https://masstransit-project.com/usage/riders/kafka.html) - [MassTransit and MediatR – Part 1](https://markgossa.com/2022/06/masstransit-and-mediatr.html) - [MassTransit and MediatR – Part 2](https://markgossa.com/2022/06/masstransit-exponential-back-off.html) - [MassTransit and MediatR – Part 3](https://markgossa.com/2022/07/masstransit-mediatr-dead-letter-invalid-messages.html) - [ASP.NET Correlation ID](https://markgossa.com/2022/05/asp-net-correlation-id.html) - [Error Handling and Message Redelivery in MassTransit](https://www.gokhan-gokalp.com/en/messaging-yapilarinda-masstransit-ile-error-ve-redeliver-handling/) - [Building a More Useful Outbox for Reliable Messaging](https://jeremydmiller.com/2022/06/16/building-a-more-useful-outbox-for-reliable-messaging/) - [MassTransit Testing](https://masstransit.io/documentation/concepts/testing) - [MassTransit observability](https://masstransit.io/documentation/configuration/observability) - [A better Masstransit Test harness](https://andersmalmgren.com/2022/08/17/a-better-masstransit-test-harness/) - [RabbitMQ Transport](https://masstransit.io/documentation/transports/rabbitmq) ⭐ - [A better Masstransit Test harness](https://andersmalmgren.com/2022/08/17/a-better-masstransit-test-harness/) - [Getting rid of the slow Masstransit test harness](https://andersmalmgren.com/2022/11/23/getting-rid-of-the-slow-masstransit-test-harness/) - [Messaging through a service bus in .NET using MassTransit part 5: failures](https://dotnetcodr.com/2016/09/28/messaging-through-a-service-bus-in-net-using-masstransit-part-5-failures/) - [Messaging through a service bus in .NET using MassTransit part 7: intercepting messages](https://dotnetcodr.com/2016/10/04/messaging-through-a-service-bus-in-net-using-masstransit-part-7-intercepting-messages/) - [Messaging through a service bus in .NET using MassTransit part 6: message types and inheritance support](https://dotnetcodr.com/2016/10/06/messaging-through-a-service-bus-in-net-using-masstransit-part-8-observing-events-in-the-bus/) ## 📺 Videos - [MassTransit–Youtube videos](https://bartwullems.blogspot.com/2020/07/masstransityoutube-videos.html) - [Modern .NET Messaging using MassTransit](https://www.youtube.com/watch?v=jQNQDLv7QmU) - [.NET Microservices Basics Course](https://youtu.be/ByYyk8eMG6c?t=18839) - [MassTransit Commute - Configure Endpoints](https://www.youtube.com/watch?v=bsUlQ93j2MY) - [RabbitMQ MassTransit - ASP NET Core](https://www.youtube.com/watch?v=sOwkIz07gvo) - [MassTransit and RabbitMQ - Playlist - Garry Taylor](https://www.youtube.com/playlist?list=PL8vZpHuqa_hOP8f1AT5r8FSP1fKm9ALZO) - [MassTransit Commute - Wire Tapping with RabbitMQ](https://www.youtube.com/watch?v=vNpXjy7psxs) - [MassTransit - The New Transactional Outbox](https://www.youtube.com/watch?v=3TjGnmLno_A) - [MassTransit Fault Handling](https://www.youtube.com/watch?v=-lpGYnznbco) - [MassTransit Exception Handling, Retry Middleware](https://www.youtube.com/watch?v=f1Oa65U2OeQ) - [MassTransit Unit Testing](https://www.youtube.com/watch?v=Cx-Mc0DCpfE) - [MassTransit Season 2 - Unit Testing with PostgreSQL and Entity Framework](https://www.youtube.com/watch?v=yfRRqPtqkgM) - [MassTransit Testing with Web Application Factory](https://www.youtube.com/watch?v=Uzme7vInDz0) - [MassTransit Commute - Error Queue](https://www.youtube.com/watch?v=3TMKUu7c4lc) - [MassTransit Fault Handling](https://www.youtube.com/watch?v=-lpGYnznbco) - [MassTransit Exception Handling, Retry Middleware](https://www.youtube.com/watch?v=f1Oa65U2OeQ) - [Build Clean Messaging in .NET with MassTransit](https://www.youtube.com/watch?v=4FFYefcx4Bg) - [MassTransit - The New Transactional Outbox](https://www.youtube.com/watch?v=3TjGnmLno_A) - [OSS Power-Ups: MassTransit](https://www.youtube.com/watch?v=sbt9p7jqe74) - [MassTransit Message Contract Sharing using NuGet](https://www.youtube.com/watch?v=5i_VQBYvTIQ) - [Versioning your MassTransit message contracts](https://www.youtube.com/watch?v=PNNxJthctgk) - [TestHarnes and OpenTelemetry](https://youtu.be/7PM9XUAAMtA) - [MassTransit - Publish vs. Send, Commands](https://www.youtube.com/watch?v=byceLITKaIk) ## 📦 Libraries - [GokGokalp/MetroBus](https://github.com/GokGokalp/MetroBus) - Lightweight messaging wrapper of MassTransit - [NCodeGroup/MassTransit.Extensions.Hosting](https://github.com/NCodeGroup/MassTransit.Extensions.Hosting) - MassTransit configuration extensions using Microsoft.Extensions.Hosting.IHostedService and Microsoft.Extensions.DependencyInjection. - [phatboyg/GreenPipes](https://github.com/phatboyg/GreenPipes) - An asynchronous pipe implementation for the Task Parallel Library ## 🚀 Samples - [MassTransit/Sample-Twitch](https://github.com/MassTransit/Sample-Twitch) - [marco-bue/masstransit-microservices](https://github.com/marco-bue/masstransit-microservices) - A sample on how to utilize MassTransit to do asynchronous communication between microservices - [jbw/TooBigToFailBurgerShop](https://github.com/jbw/TooBigToFailBurgerShop) - .NET Microservice Reference Application. It's also an over-engineered burger shop! - [kalintsenkov/BettingSystem](https://github.com/kalintsenkov/BettingSystem) - ASP.NET Core | Domain-Driven Design | Clean Architecture - [hd9/aspnet-microservices](https://github.com/hd9/aspnet-microservices) - Sample microservice architecture using .NET Core, Docker, Azure and Kubernetes. - [mansoorafzal/AspnetMicroservices](https://github.com/mansoorafzal/AspnetMicroservices) - Development and Communication of Microservices with .NET Core 5 using ASP.NET Web API, Docker Compose, RabbitMQ, MassTransit, Portainer, gRPC, Protocol Buffers, SQL Server, Redis, MongoDB, PostgreSQL, Dapper, Entity Framework Core, AutoMapper, MediatR, FluentValidation, Ocelot, Elasticsearch, Kibana, Polly, OpenTelemetry, Jaeger. - [VasilisGaitanidis/master-containerized-microservices](https://github.com/VasilisGaitanidis/master-containerized-microservices) - This repo contains a sample application based on a fictional eCommerce. The primary goal of this sample is to demonstrate several software-architecture concepts like: Clean Architecture, Microservices, CQRS, Event Sourcing, Publish-Subscribe Architecture, Domain Driven Design (DDD). Currently this is a work in progress. - [twzhangyang/RestAirline](https://github.com/twzhangyang/RestAirline) - DDD+CQRS+EventSourcing+Hypermedia API+ASP.NET Core 3.1+Masstransit+terraform+docker+k8s - [matjazbravc/Microservice.Architecture.Demo](https://github.com/matjazbravc/Microservice.Architecture.Demo) - This demo shows a working sample of microservices architecture using ASP.NET Core. It covers how to create microservices, how to create API gateways using Ocelot, how to use MassTransit as distributed application framework, RabbitMQ as message broker, how to unit test microservices using xUnit, how to monitor microservices using health checks - [maldworth/tutorial-masstransit-send-vs-publish](https://github.com/maldworth/tutorial-masstransit-send-vs-publish) - [http://www.maldworth.com/2015/10/27/masstransit-send-vs-publish/](http://www.maldworth.com/2015/10/27/masstransit-send-vs-publish/) - [MassTransit Samples](https://masstransit-project.com/learn/samples.html) - [bartstc/booking-app](https://github.com/bartstc/booking-app) - A comprehensive Domain Driven Design example with microservices and various tactical patterns. - [pdevito3/WeSendReportsCompany](https://github.com/pdevito3/WeSendReportsCompany) - an example repo for sending direct messages using masstransit and rabbitmq - [danmalcolm/masstransit-kafka-demo](https://github.com/danmalcolm/masstransit-kafka-demo) - Demonstrates use of MassTransit Kafka rider to produce and consume messages, including support for multiple message types on a single topic - [MassTransit/Sample-GettingStarted](https://github.com/MassTransit/Sample-GettingStarted) - [MassTransit/Sample-Outbox](https://github.com/MassTransit/Sample-Outbox) - [markgossa/Reference-Event-Driven-Architecture](https://github.com/markgossa/Reference-Event-Driven-Architecture) - [MassTransit/Sample-JobConsumers](https://github.com/MassTransit/Sample-JobConsumers) - [MassTransit/Sample-Kafka](https://github.com/MassTransit/Sample-Kafka) ================================================ FILE: docs/microservices/tools/nservicebus.md ================================================ # NServiceBus ## 📘 Resources - [Getting started](https://particular.net/learn/getting-started) - [Documentation](https://docs.particular.net/nservicebus/) - [Selecting a transport](https://docs.particular.net/transports/selecting) - [Selecting a persister](https://docs.particular.net/persistence/selecting) - [Free POC help](https://particular.net/proof-of-concept) ## 📕 Articles - [RPC vs Messaging](https://particular.net/blog/rpc-vs-messaging-which-is-faster) - [Putting your events on a diet](https://particular.net/blog/putting-your-events-on-a-diet) ## 📺 Videos - [Udi Dahan - Microservices, SOA and DDD](https://www.youtube.com/watch?v=MTArpO7rSQE) - [Udi Dahan - Event Sourcing 2020 Keynote](https://www.youtube.com/watch?v=-iuMjjKQnhg) - [Live coding your first NServiceBus system](https://particular.net/webinars/live-coding-your-first-nservicebus-system) ## 🚀 Samples - [jbogard/presentations/DistributedTracing](https://github.com/jbogard/presentations/tree/master/DistributedTracing) - [dvdstelt/EventualConsistencyDemo](https://github.com/dvdstelt/EventualConsistencyDemo) - [dvdstelt/MicroservicesDemo](https://github.com/dvdstelt/microservices) ================================================ FILE: docs/microservices/tools/steeltoe.md ================================================ # Steeltoe ## 📘 Resources - [SteeltoeOSS/Steeltoe](https://github.com/SteeltoeOSS/Steeltoe) - Steeltoe .NET Core Components: CircuitBreaker, Configuration, Connectors, Discovery, Logging, Management, and Security ## 📺 Videos - [.NET Microservices with Steeltoe](https://channel9.msdn.com/Shows/On-NET/NET-Microservices-with-Steeltoe) - [Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-In](https://www.youtube.com/watch?v=Lg1VieZk-5c) ## 🚀 Samples - [SteeltoeOSS/Samples](https://github.com/SteeltoeOSS/Samples) - Steeltoe samples and reference application collection ================================================ FILE: docs/microservices/tools/tye.md ================================================ # Tye ## 📘 Resources - [Tye Docs](https://github.com/dotnet/tye/tree/main/docs) - [dotnet/tye](https://github.com/dotnet/tye) - Tye is a tool that makes developing, testing, and deploying microservices and distributed applications easier. Project Tye includes a local orchestrator to make developing microservices easier and the ability to deploy microservices to Kubernetes with minimal configuration. ## 📕 Articles - [Use Project Tye to simplify your .NET microservice development experience (part 1)](https://www.daveabrock.com/2020/08/19/microservices-with-tye-1/) - [Use Project Tye to simplify your .NET microservice development experience (part 2)](https://www.daveabrock.com/2020/08/27/microservices-with-tye-2/) - [Project Tye – easier development with .NET for Kubernetes](https://csharp.christiannagel.com/2020/05/11/tye/) - [Introducing Project Tye](https://devblogs.microsoft.com/aspnet/introducing-project-tye/) - [Announcing Visual Studio Code extension for Tye](https://devblogs.microsoft.com/dotnet/announcing-visual-studio-code-extension-for-tye/?WT.mc_id=DT-MVP-5002040) - [Project Tye: Creating Microservices in a .NET Way](https://www.codemag.com/Article/2010052/Project-Tye-Creating-Microservices-in-a-.NET-Way) - [Using Project Tye to Run Dependent Services for use with ASP.NET Core](https://adamstorr.azurewebsites.net/blog/using-project-tye-to-run-dependent-services-for-use-with-aspnetcore) - [Enjoy Local Development with Tye, Docker, and .NET](https://khalidabuhakmeh.com/local-dev-with-tye-docker-and-dotnet) - [Introducing Project Tye](https://devblogs.microsoft.com/dotnet/introducing-project-tye/) - [Distributed application with Project Tye](https://rafaelldi.blog/posts/distributed-application-with-project-tye/) - [Be more productive in developing .NET Core microservices with Tye](https://craftbakery.dev/be-more-productive-with-tye/) - [Tye, starting and running multiple APIs with a single command](https://timdeschryver.dev/blog/tye-starting-and-running-multiple-apis-with-a-single-command) ## 📺 Videos - [Building microservices with Tye](https://www.youtube.com/watch?v=m4VsOdIT1O4) - [Developing and Deploying Microservices with 'Tye'](https://www.youtube.com/watch?v=_s8UdhGOGmY) - [Navigating microservices with .NET Core - Ryan Nowak](https://www.youtube.com/watch?v=dubHmScPNzQ) - [Building Cloud Native NET Applications with Project Tye - Jon Galloway - NDC Oslo 2021](https://www.youtube.com/watch?v=ou7rNmnVBXY) - [How Tye makes building microservices a joke](https://www.youtube.com/watch?v=ByL2NuNTuHs) - [Building Microservices with Tye | Glenn Gordon](https://www.youtube.com/watch?v=EvfEkL1CZIM) - [Building Microservices in .NET with Project Tye](https://www.youtube.com/watch?v=qthKolaK7kk) - [Building FeedR - Tye, PM2, Docker (Microservices with .NET 6.0) episode #2](https://www.youtube.com/watch?v=DbUt_0E8TKo) ## 🚀 Samples - [dotnet/tye/tree/main/samples](https://github.com/dotnet/tye/tree/main/samples) - [vietnam-devs/coolstore-microservices/tye.yaml](https://github.com/vietnam-devs/coolstore-microservices/blob/main/tye.yaml) - [thangchung/clean-architecture-dotnet/tye.yaml](https://github.com/thangchung/clean-architecture-dotnet/blob/main/samples/tye.yaml) ================================================ FILE: docs/microservices/tools/wolverine.md ================================================ # Wolverine ## Resources - [Wolverine Docs](https://wolverine.netlify.app/) - [Wolverine blog posts](https://jeremydmiller.com/?s=Wolverine) ## Articles - [Unraveling the Magic in Wolverine](https://jeremydmiller.com/2023/10/02/unraveling-the-magic-in-wolverine/) - [Wolverine is for the developers](https://timdeschryver.dev/blog/wolverine-is-for-the-developers) - [How to fully leverage Wolverine with its HTTP package](https://timdeschryver.dev/blog/how-to-fully-leverage-wolverine-with-its-http-package) - [Wolverine embraces Observability](https://timdeschryver.dev/blog/wolverine-embraces-observability) - [Messages and Serialization](https://wolverine.netlify.app/guide/messages.html) - [ASP.Net Core Integration](https://wolverine.netlify.app/guide/http/integration.html) - [Using Local Queueing](https://wolverine.netlify.app/guide/messaging/transports/local.html) - [Building a Critter Stack Application: Event Storming](https://jeremydmiller.com/2023/11/28/building-a-critter-stack-application-event-storming/) - [Building a Critter Stack Application: Marten as Event Store](https://jeremydmiller.com/2023/11/29/building-a-critter-stack-application-marten-as-event-store/) - [Building a Critter Stack Application: Marten Projections](https://jeremydmiller.com/2023/11/30/building-a-critter-stack-application-marten-projections/) - [Building a Critter Stack Application: Integrating Marten into Our Application](https://jeremydmiller.com/2023/12/01/building-a-critter-stack-application-integrating-marten-into-our-application/) - [Building a Critter Stack Application: Wolverine as Mediator](https://jeremydmiller.com/2023/12/03/building-a-critter-stack-application-wolverine-as-mediator/) - [Building a Critter Stack Application: Marten Projections](https://jeremydmiller.com/2023/11/30/building-a-critter-stack-application-marten-projections/) - [Building a Critter Stack Application: Dealing with Concurrency](https://jeremydmiller.com/2023/12/05/building-a-critter-stack-application-dealing-with-concurrency/) - [Building a Critter Stack Application: Integration Testing Harness](https://jeremydmiller.com/2023/12/12/building-a-critter-stack-application-integration-testing-harness/) - [Building a Critter Stack Application: Marten as Document Database](https://jeremydmiller.com/2023/12/13/building-a-critter-stack-application-marten-as-document-database/) - [Building a Critter Stack Application: Asynchronous Processing with Wolverine](https://jeremydmiller.com/2023/12/14/building-a-critter-stack-application-asynchronous-processing-with-wolverine/) - [Building a Critter Stack Application: Durable Outbox Messaging and Why You Care!](https://jeremydmiller.com/2023/12/28/building-a-critter-stack-application-durable-outbox-messaging-and-why-you-care/) - [Building a Critter Stack Application: Wolverine HTTP Endpoints](https://jeremydmiller.com/2024/01/09/building-a-critter-stack-application-wolverine-http-endpoints/) - [Building a Critter Stack Application: Easy Unit Testing with Pure Functions](https://jeremydmiller.com/2024/01/10/building-a-critter-stack-application-easy-unit-testing-with-pure-functions/) - [Conventional Message Routing in Wolverine](https://jeremydmiller.com/2024/03/19/conventional-message-routing-in-wolverine/) - [Wolverine’s Baked In Integration Testing Support](https://jeremydmiller.com/2024/03/25/wolverines-baked-in-integration-testing-support/) - [Testing Asynchronous Projections in Marten](https://jeremydmiller.com/2024/03/26/testing-asynchronous-projections-in-marten/) - [Critter Stack Improvements for Event Driven Architecture](https://jeremydmiller.com/2024/05/02/critter-stack-improvements-for-event-driven-architecture/) - [Low Ceremony Sagas with Wolverine](https://jeremydmiller.com/2024/08/20/low-ceremony-sagas-with-wolverine/) - [How Wolverine allows for easier testing](https://jeremydmiller.com/2022/12/13/how-wolverine-allows-for-easier-testing/) - [CQRS Command Handlers with Marten](https://jeremydmiller.com/2024/09/09/cqrs-command-handlers-with-marten/) ## Videos - [Don't let MediatR hold you back, try this...](https://www.youtube.com/watch?v=YlG3bnJ7yCc) - [CQRS with Event Sourcing using the “Critter Stack” | .NET Conf 2023](https://www.youtube.com/watch?v=KousO1UsHYM) ## Samples - [oskardudycz/EventSourcing.NetCore/Sample/Helpdesk.Wolverine](https://github.com/oskardudycz/EventSourcing.NetCore/tree/helpdesk_wolverine/Sample/Helpdesk.Wolverine) - [dotnet/aspire](https://github.com/dotnet/aspire) - .NET Aspire is an opinionated, cloud ready stack for building observable, production ready, distributed applications - [JasperFx/CritterStackHelpDesk](https://github.com/JasperFx/CritterStackHelpDesk) My take on Oskar's Helpdesk sample application, but with Wolverine ================================================ FILE: docs/modeling/architecture-diagram.md ================================================ # Architecture Diagram & C4 Model ## 📘 Resources - [shubhamgrg04/awesome-diagramming](https://github.com/shubhamgrg04/awesome-diagramming) - A curated collection of diagramming tools used by leading software engineering teams ## 📕 Articles - [Diagrams as code 2.0](https://dev.to/simonbrown/diagrams-as-code-2-0-82k) - [Modelling vs diagramming software architecture](https://blog.icepanel.io/2022/09/21/modelling-vs-diagramming-software-architecture) - [Diagramming distributed architectures with the C4 model](https://dev.to/simonbrown/diagramming-distributed-architectures-with-the-c4-model-51cm) - [Structurizr quick tip: moving relationship descriptions](https://dev.to/simonbrown/structurizr-quick-tip-moving-relationship-descriptions-4iim) - [Structurizr quick tip: hiding descriptions](https://dev.to/simonbrown/structurizr-quick-tip-hiding-descriptions-324b) - [C4 model for system architecture design](https://blog.icepanel.io/2022/10/03/c4-model-for-system-architecture-design/) - [Modelling multiple relationships](https://dev.to/simonbrown/modelling-multiple-relationships-51bf) - [Cloud architecture diagrams](https://dev.to/simonbrown/cloud-architecture-diagrams-3pbm) - [Getting started with Structurizr Lite](https://dev.to/simonbrown/getting-started-with-structurizr-lite-27d0) - [Setting up PlantUML for coding C4 architecture diagrams](https://joymonscode.blogspot.com/2019/04/setting-up-plantuml-for-coding-c4.html) - [Software Architecture Diagrams as Code](https://shekhargulati.com/2020/04/21/software-architecture-diagrams-as-code/) - [3 Diagram as Code Tools That Combined Cover All Your Needs](https://dev.to/xnok/3-diagram-as-code-tools-that-combined-cover-all-your-needs-3fl9) - [C4 Model - Getting Started Workshop](https://miro.com/miroverse/c4-model-getting-started-workshop/) ⭐ - [C4 model for system architecture design](https://icepanel.io/blog/2022-10-03-c4-model-for-system-architecture-design) ⭐ - [Visualizing software architecture with the C4 model](https://icepanel.io/blog/2023-02-23-visualizing-software-architecture-with-the-c4-model) ## 📺 Videos - [Setting up PlantUML for coding C4 architecture diagrams in Visual Studio Code](https://www.youtube.com/watch?v=Zt3Bj1HMJ8g) - [PlantUML Playlist - Arturo Santiago-Rivera](https://www.youtube.com/playlist?list=PLPPxJMwitEl0-J8xO_z7SzjI9UTYH7dvz) - [Using PlantUML in VSCode](https://www.youtube.com/watch?v=xkwJ9GwgZJU) - [TechProductivity TechTalk01: How to draw UML diagrams with code - PlantUML](https://www.youtube.com/watch?v=Dd0bJlHDwLY) - [Intro to C4 Architecture Diagrams and C4 PlantUML extension](https://www.youtube.com/watch?v=n-e1FDAtBuM) - [Python Diagrams - Make incredible Diagrams using Python](https://www.youtube.com/watch?v=Oa-_EUg44cQ) - [Design Cloud System Architectures Diagram using MinGrammer Python API](https://www.youtube.com/watch?v=BavZNZTu5-E) - [Ep9: AWS, GCP or Azure diagrams as Code](https://www.youtube.com/watch?v=OuoHplWY4Yg) ## Tools - [plantuml-stdlib/C4-PlantUML](https://github.com/plantuml-stdlib/C4-PlantUML) - C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures - [mingrammer/diagrams](https://github.com/mingrammer/diagrams) - [mermaid-js/mermaid](https://github.com/mermaid-js/mermaid) - Generation of diagram and flowchart from text in a similar manner as markdown - [C4 DSL Extension](https://marketplace.visualstudio.com/items?itemName=systemticks.c4-dsl-extension) - [pierre3/PlantUmlClassDiagramGenerator](https://github.com/pierre3/PlantUmlClassDiagramGenerator) - This is a generator to create a class-diagram of PlantUML from the C# source code. - [drawsql.app](https://drawsql.app/) - [excalidraw.com](https://excalidraw.com/) ================================================ FILE: docs/modeling/class-diagram.md ================================================ 0 Class Diagram (Class Modeling) ## 📕 Articles - [UML Class Diagram Tutorial with Examples](https://www.guru99.com/uml-class-diagram.html) - [What is Class Diagram?](https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-class-diagram/) - [Data Modeling 101](http://www.agiledata.org/essays/dataModeling101.html) - [UML 2 Class Diagramming Guidelines](http://agilemodeling.com/style/classDiagram.htm) - [Plant UML - Class Diagram](https://plantuml.com/class-diagram) ================================================ FILE: docs/modeling/component-diagram.md ================================================ # Component Diagram ## 📕 Articles - [UML 2 Component Diagramming Guidelines](http://agilemodeling.com/style/componentDiagram.htm) - [Plant UML - Component Diagram](https://plantuml.com/component-diagram) ================================================ FILE: docs/modeling/conceptual-modeling.md ================================================ # Conceptual Modeling ## 📕 Articles - [Data Modelling: Conceptual, Logical, Physical Data Model Types](https://www.guru99.com/data-modelling-conceptual-logical.html) - [Data Modeling - Conceptual Data Model](https://sparxsystems.com/resources/gallery/diagrams/software/sw-data_modeling_-conceptual_data_model.html) - [Conceptual Model](https://www.visual-paradigm.com/support/documents/vpuserguide/3563/3564/85378_conceptual,l.html) - [How to Implement a Conceptual, Logical, and Physical Data Model in Vertabelo](https://vertabelo.com/blog/conceptual-logical-and-physical-data-model/) - [What Are Conceptual, Logical, and Physical Data Models?](https://vertabelo.com/blog/conceptual-logical-physical-data-model/) - [5 Examples of Conceptual Data Models](https://vertabelo.com/blog/conceptual-data-model/) - [Data Modeling 101](http://www.agiledata.org/essays/dataModeling101.html) ## 📺 Videos - [Conceptual Data Modeling with Diagrams.Net](https://www.youtube.com/watch?v=7lGFx-qYmhU) - [Get a Head Start with Entity Framework Core 5.0 with EF Core Power Tools](https://www.youtube.com/watch?v=uph-AGyOd8c) ================================================ FILE: docs/modeling/data-model-notations.md ================================================ # Data Model Notations ## 📕 Articles - [A Comparison of Data Modeling Techniques](https://www.essentialstrategies.com/publications/modeling/compare.htm) - [IDEF1X Data Model Notation](https://www.essentialstrategies.com/publications/modeling/idef1x.htm) - [Richard Barker Data Model Notation](https://www.essentialstrategies.com/publications/modeling/barker.htm) - [Information Engineering Data Model Notation](https://www.essentialstrategies.com/publications/modeling/infoeng.htm) - [Crow’s Foot Notation](https://vertabelo.com/blog/crow-s-foot-notation/) - [Chen Notation](https://vertabelo.com/blog/chen-erd-notation/) - [Barker’s Notation](https://vertabelo.com/blog/barkers-erd-notation/) - [UML Notation](https://vertabelo.com/blog/uml-notation/) ================================================ FILE: docs/modeling/domain-stroytelling.md ================================================ # Domain Storytelling ## 📺 Videos - [Carving Microservices out of the Monolith with Domain Storytelling - Henning Schwentner](https://www.youtube.com/watch?v=ggdBPW_DWbE) - [An Introduction to Domain Storytelling](https://www.youtube.com/watch?v=d9k9Szkdprk) ================================================ FILE: docs/modeling/er-diagrams.md ================================================ # ER Diagrams (Data Modeling) ## 📕 Articles - [Data Modeling 101](http://www.agiledata.org/essays/dataModeling101.html) - [What to Look for in Your ER Diagram Tool](https://vertabelo.com/blog/selecting-er-diagram-tool/) - [Why Do You Need an ER Diagram?](https://vertabelo.com/blog/why-need-an-er-diagram/) - [Getting Started with ER Diagrams in Vertabelo](https://vertabelo.com/blog/start-online-data-modeling/) - [What Is an ER Diagram?](https://vertabelo.com/blog/entity-relationship-diagram/) - [Explaining an ER Diagram, With Steps and Use Cases](https://vertabelo.com/blog/how-to-use-er-diagram/) - [A Database Model for a Hotel Reservation Booking App and Channel Manager](https://vertabelo.com/blog/a-database-model-for-a-hotel-reservation-booking-app-and-channel-manager/) - [A Data Model for Online Concert Ticket Sales](https://vertabelo.com/blog/a-data-model-for-online-concert-ticket-sales/) - [What Are the Symbols Used in an ER Diagram?](https://vertabelo.com/blog/symbol-in-erd-diagram/) - [ER Diagram: Entity Relationship Diagram Model | DBMS Example](https://www.guru99.com/er-diagram-tutorial-dbms.html) - [What is an Entity Relationship Diagram (ERD)?](https://www.lucidchart.com/pages/er-diagrams) - [Entity Data Model Key Concepts](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/entity-data-model-key-concepts?redirectedfrom=MSDN) - [A Data Model for an Online Musical Equipment Shop](https://vertabelo.com/blog/a-data-model-for-an-online-musical-equipment-shop/) - [A Data Model for a Wine Store](https://vertabelo.com/blog/a-data-model-for-a-wine-store/) - [Automobile Repair Shop Data Model](https://vertabelo.com/blog/automobile-repair-shop-data-model/) - [A Data Model for a Freelancers Collective](https://vertabelo.com/blog/a-data-model-for-a-freelancers-collective/) - [What is the difference between 'class diagrams' and 'data models' in UML?](https://stackoverflow.com/questions/8926519/what-is-the-difference-between-class-diagrams-and-data-models-in-uml) - [A Comparison of Data Modeling Techniques](https://www.essentialstrategies.com/publications/modeling/compare.htm) ## 📺 Videos - [Creating Entity Relationship Diagrams using Draw.io](https://www.youtube.com/watch?v=lAtCySGDD48) - [Entity Relationship Diagram (ERD) Tutorial - Part 1](https://www.youtube.com/watch?v=QpdhBUYk7Kk) - [Entity Relationship Diagram (ERD) Tutorial - Part 2](https://www.youtube.com/watch?v=-CuY5ADwn24) ================================================ FILE: docs/modeling/event-modeling.md ================================================ # Event Modeling ## 📘 Resources - [Event-Driven Information Systems](https://www.youtube.com/channel/UCSoUh4ikepF3LkMchruSSaQ/videos) ## 📕 Articles - [Event Modeling: What is it?](https://eventmodeling.org/posts/what-is-event-modeling/) - [EventModeling Cheat Sheet](https://eventmodeling.org/posts/event-modeling-cheatsheet/) - [Natural Human Thinking - Event Storming vs Event Modeling](https://eventmodeling.org/posts/human-natural-thinking/) - [Event Modeling Traditional Systems](https://eventmodeling.org/posts/event-modeling-traditional-systems/) - [E-COMMERCE Modeling TUTORIAL](https://www.messagehandler.net/docs/learning-path/e-commerce/) - [Anti-patterns in event modelling - Clickbait event](https://event-driven.io/en/clickbait_event/) - [WHAT IS EVENT MODELING? (WITH EXAMPLE)](https://www.goeleven.com/blog/event-modeling/) ⭐ ## 📺 Videos - [Event Modeling Workshop - Adam Dymitruk](https://www.youtube.com/watch?v=gyhR5Wey6_s) ⭐ - [Event Modeling • Adam Dymitruk • YOW! 2022](https://www.youtube.com/watch?v=cVyVmcwiPWw) - [Copenhagen DDD Event Modeling with Adam Dymitruk](https://www.youtube.com/watch?v=U_MwAEf8V_A) - [OAuth2 Event Modeling in Go, Part 1](https://www.youtube.com/watch?v=32lvL_Un8ko) - [Event Sourcing, Event Modeling and Event Storming](https://www.youtube.com/watch?v=tkn1p7LUY2o) ================================================ FILE: docs/modeling/event-storming.md ================================================ # Event Storming ## 📘 Resources - [mariuszgil/awesome-eventstorming](https://github.com/mariuszgil/awesome-eventstorming) - [ddd-crew/eventstorming-glossary-cheat-sheet](https://github.com/ddd-crew/eventstorming-glossary-cheat-sheet) - [wwerner/event-storming-cheatsheet](https://github.com/wwerner/event-storming-cheatsheet) - [ddd-crew/ddd-starter-modelling-process](https://github.com/ddd-crew/ddd-starter-modelling-process) - [Event Storming - Judith Birmoser](https://miro.com/miroverse/event-storming/) ## 📕 Articles - [Decomposing the Monolith with Event Storming](https://medium.com/capital-one-tech/event-storming-decomposing-the-monolith-to-kick-start-your-microservice-architecture-acb8695a6e61) - [Reactive in practice, Unit 1: Event storming the stock trader domain](https://developer.ibm.com/technologies/java/tutorials/reactive-in-practice-1/) - [Event Storming](https://ibm-cloud-architecture.github.io/refarch-eda/methodology/event-storming/) - [Event storming analysis](https://ibm-cloud-architecture.github.io/refarch-kc/implementation/event-storming-analysis/) - [Detailed Agenda of a DDD Big Picture Event Storming - Part 1](https://philippe.bourgau.net/detailed-agenda-of-a-ddd-big-picture-event-storming-part-1/) - [Detailed Agenda of a DDD Big Picture Event Storming - Part 2](https://philippe.bourgau.net/detailed-agenda-of-a-ddd-big-picture-event-storming-part-2/) - [Detailed Agenda of a DDD Big Picture Event Storming - Part 3](https://philippe.bourgau.net/detailed-agenda-of-a-ddd-big-picture-event-storming-part-3/) - [More Efficient Domain Modeling with EventStorming](https://buildplease.com/pages/modeling-better/) - [Modelling Reactive Systems with Event Storming and Domain-Driven Design](https://blog.redelastic.com/corporate-arts-crafts-modelling-reactive-systems-with-event-storming-73c6236f5dd7) - [Detailed agenda for a DDD Design-Level Event Storming - part 1](https://philippe.bourgau.net/detailed-agenda-for-a-ddd-design-level-event-storming-part-1/) - [Detailed agenda for a DDD Design-Level Event Storming - part 2](https://philippe.bourgau.net/detailed-agenda-for-a-ddd-design-level-event-storming-part-2/) - [Why should we use Design Level Event Storming for DDD?](https://philippe.bourgau.net/why-should-we-use-design-level-event-storming-for-ddd/) - [7 tactics that will make your DDD Design-Level Event Storming pay-off](https://philippe.bourgau.net/7-tactics-that-will-make-your-ddd-design-level-event-storming-pay-off/) - [EventStorming; Core concepts, glossary and legend](https://baasie.com/2020/07/16/eventstorming-core-concepts-glossary-and-legend/) - [A step by step guide to Event Storming – our experience](https://www.boldare.com/blog/event-storming-guide/) - [EventStorming – From Big Picture to Software Design](https://www.agilepartner.net/en/eventstorming-from-big-picture-to-software-design/) - [What is EventStorming?](https://medium.com/techlabs-emag/what-is-event-storming-ed1a0e519fad) - [The introduction to Big Picture Eventstorming.v1](https://locastic.com/blog/intro-to-big-picture-eventstorming/) - [The introduction to Big Picture Eventstorming.v2](https://locastic.com/blog/the-introduction-to-big-picture-eventstorming-v2/) - [Event Storming: How It Will Improve Your Business Processes?](https://selleo.com/blog/event-storming-how-it-will-improve-your-business-processes-) - [Remote EventStorming](https://blog.avanscoperta.it/2020/03/26/remote-eventstorming/) - [EventStorming cheat sheet](https://baasie.com/2019/07/29/eventstorming-cheat-sheet/) - [EventStorming tools, what is in my flight case!](https://baasie.com/2019/05/08/eventstorming-tools-what-is-in-my-flight-case/) - [Discovering complex domain with Event Storming](https://solidstudio.io/blog/discovering-domain-with-event-storming) - [Decomposing the Monolith with Event Storming](https://medium.com/capital-one-tech/event-storming-decomposing-the-monolith-to-kick-start-your-microservice-architecture-acb8695a6e61) - [Big Picture Event Storming](https://medium.com/@chatuev/big-picture-event-storming-7a1fe18ffabb) - [EventStorming cheat sheet](https://xebia.com/blog/eventstorming-cheat-sheet/) - [Legacy Architecture Modernisation With Strategic Domain-Driven Design](https://medium.com/nick-tune-tech-strategy-blog/legacy-architecture-modernisation-with-strategic-domain-driven-design-3e7c05bb383f) - [Remote Workshops Using Miro: What I’ve Learned So Far](https://medium.com/nick-tune-tech-strategy-blog/remote-workshops-using-miro-what-ive-learned-so-far-849391f0412b) - [Remote Team Flow EventStorming for Retrospectives](https://medium.com/nick-tune-tech-strategy-blog/remote-team-flow-eventstorming-for-retrospectives-a8ea33cdb277) - [EventStorming Modelling Tips to Facilitate Microservice Design](https://medium.com/nick-tune-tech-strategy-blog/eventstorming-modelling-tips-to-facilitate-microservice-design-1b1b0b838efc) - [Outside-in Domain Landscape Discovery](https://medium.com/nick-tune-tech-strategy-blog/outside-in-domain-landscape-discovery-3ec88aeb70db) - [Event Storming and Spring with a Splash of DDD](https://spring.io/blog/2018/04/11/event-storming-and-spring-with-a-splash-of-ddd) - [Strategic Domain-Driven Design Kata: Delivericious](https://medium.com/nick-tune-tech-strategy-blog/strategic-domain-driven-design-kata-delivericious-b114ca77163) - [Design Level Event Storming with examples!](https://mrpicky.dev/design-level-event-storming-with-examples/) - [Why You Should Be Using Event Storming](https://betterprogramming.pub/why-you-should-be-using-event-storming-2f32e5280c8c) - [This could be the biggest post about Big Picture Event Storming ever! And with examples!](https://mrpicky.dev/this-could-be-the-biggest-post-about-big-picture-event-storming-ever-and-with-examples/) ⭐ - [Process Level Event Storming: let’s get this process started!](https://mrpicky.dev/process-level-event-storming-lets-get-this-process-started/) - [Mastering Strategic Domain-Driven Design – 3. Draft of Subdomains](https://meaboutsoftware.com/2023/10/01/mastering-strategic-domain-driven-design-3-draft-of-subdomains/) - [Mastering Strategic Domain-Driven Design – 4. Tuning of Subdomains](https://meaboutsoftware.com/2023/11/26/mastering-strategic-domain-driven-design-4-tuning-of-subdomains/) ## 📺 Videos - [Scoping and Organizing .NET Microservices Using Event Storming](https://www.pluralsight.com/courses/dotnet-microservices-scoping-organizing) - [GOTO 2018 • 50.000 Orange Stickies Later • Alberto Brandolini](https://www.youtube.com/watch?v=NGXl1D-KwRI) - [Crunching 'real-life stories' with DDD & Event Storming - Kenny Baas-Schwegler - KanDDDinsky 201](https://www.youtube.com/watch?v=WvkBKvMnyuc) ⭐ - [Event Storming demo & discussion](https://www.youtube.com/watch?v=xIB_VQVVWKk) - ["Domain Modelling in a Remote World" with Marco Heimeshoff (Thursday's Matter)](https://www.youtube.com/watch?v=jdU_iTBP2Qs) - [Webinar: Extreme Domain-Driven Design Modelling - Tech Talk by Nexten](https://www.youtube.com/watch?v=uJ4mPU1i6E0) - [Event Storming Workshop @Bucharest Software Craftsmanship Community](https://www.youtube.com/watch?v=xVSaDdj3PVE) - [Trying out online EventStorming](https://www.youtube.com/watch?v=CbPEibNUe0s) - [Alberto Brandolini - 100,000 Orange Stickies Later](https://www.youtube.com/watch?v=fGm62ra_mQ8) - [Modularization with Event Storming Process Level - Radek Maziarka](https://www.architecture-weekly.com/p/webinar-9-radek-maziarka-modularization) ## 🚀 Samples - [ddd-by-examples/library](https://github.com/ddd-by-examples/library) - A comprehensive Domain-Driven Design example with problem space strategic analysis and various tactical patterns. - [Event Storming](https://miro.com/app/board/o9J_kt3rZb4=/?fromEmbed=1) - [Decomposing the Monolith with Event Storming](https://medium.com/capital-one-tech/event-storming-decomposing-the-monolith-to-kick-start-your-microservice-architecture-acb8695a6e61) - [RagDhiman/M4-Organizing-Your-.NET-Microservices-MegaService](https://github.com/RagDhiman/M4-Organizing-Your-.NET-Microservices-MegaService) - Scoping and Organizing .NET Microservices Using Event Storming - [RagDhiman/M4-Organizing-Your-.NET-Microservices-Organized](https://github.com/RagDhiman/M4-Organizing-Your-.NET-Microservices-Organized) - Scoping and Organizing .NET Microservices Using Event Storming - [RagDhiman/Miro-Event-Storming-Steps-JPEGs](https://github.com/RagDhiman/Miro-Event-Storming-Steps-JPEGs) - Scoping and Organizing .NET Microservices Using Event Storming - [RagDhiman/Miro-Event-Storming-Steps](https://github.com/RagDhiman/Miro-Event-Storming-Steps) - Scoping and Organizing .NET Microservices Using Event Storming - ["Domain Modelling in a Remote World" with Marco Heimeshoff](https://miro.com/app/board/o9J_lSf4hpY=/) - [Strategic DDD Kata: Delivericious](https://miro.com/app/board/o9J_l45tkpU=/) - [Ecommerece Miro](https://miro.com/app/board/uXjVOqNZGYg=/) - [From EventStormin to CoDDDing](https://miro.com/app/board/o9J_kwDgULY=/) - [m-khooryani/OverCloudAirways](https://github.com/m-khooryani/OverCloudAirways) ## 📚 Books - [Learn EventStorming notation & discover Big Picture and Process Level EventStorming](https://lukaszcoding.com/eventstorming-cheatsheet) - [Introducing EventStorming - Alberto Brandolini](https://leanpub.com/introducing_eventstorming) - [Domain-Driven Design The First 15 Years](https://dddeurope.com/15years/) - [Hands-On Domain-Driven Design with .NET Core: Tackling complexity in the heart of software by putting DDD principles](https://www.amazon.com/Hands-Domain-Driven-Design-NET-ebook/dp/B07C5WSR9B) - [Domain-Driven Design Distilled by Vaughn Vernon](https://www.amazon.com/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420) ================================================ FILE: docs/modeling/index.md ================================================ [Modeling](modeling.md) - [Architecture Diagram](architecture-diagram.md) - [Class Diagram](class-diagram.md) - [Component Diagram](component-diagram.md) - [Conceptual Diagram](conceptual-diagram.md) - [Conceptual Modeling](conceptual-modeling.md) - [Data Modeling Notations](data-modeling-notations.md) - [ER Diagrams](er-diagrams.md) - [Logical Modeling](logical-modeling.md) - [Physical Modeling](physical-modeling.md) - [Relationship](relationship.md) - [Tools](tools.md) - [Use Case Diagram](use-case-diagram.md) ================================================ FILE: docs/modeling/logical-modeling.md ================================================ # Logical Modeling ## 📕 Articles - [How to Implement a Conceptual, Logical, and Physical Data Model in Vertabelo](https://vertabelo.com/blog/conceptual-logical-and-physical-data-model/) - [What Are Conceptual, Logical, and Physical Data Models?](https://vertabelo.com/blog/conceptual-logical-physical-data-model/) - [Vertabelo Features: Logical Diagrams](https://vertabelo.com/blog/logical-diagrams/) ## 📺 Videos - [Logical Data Modeling with Diagrams.Net](https://www.youtube.com/watch?v=CmjW3HyazRA) ================================================ FILE: docs/modeling/modeling.md ================================================ # Modeling ## 📺 Videos - [UML Diagrams Full Course (Unified Modeling Language)](https://www.youtube.com/watch?v=WnMQ8HlmeXc) ================================================ FILE: docs/modeling/physical-modeling.md ================================================ # Physical Modeling ## 📕 Articles - [How to Implement a Conceptual, Logical, and Physical Data Model in Vertabelo](https://vertabelo.com/blog/conceptual-logical-and-physical-data-model/) - [What Are Conceptual, Logical, and Physical Data Models?](https://vertabelo.com/blog/conceptual-logical-physical-data-model/) - [How to Create Physical Diagrams in Vertabelo](https://vertabelo.com/blog/create-physical-diagrams-in-vertabelo/) - [Reverse Engineering With Vertabelo](https://vertabelo.com/blog/reverse-engineering-with-vertabelo/) ================================================ FILE: docs/modeling/relationship.md ================================================ # Relationships ## 📕 Articles - [What is the difference between IS -A relationship and HAS-A relationship in Java? [duplicate]](https://stackoverflow.com/questions/36162714/what-is-the-difference-between-is-a-relationship-and-has-a-relationship-in-java) - [Types Of Relationships In Object Oriented Programming (OOP)](https://www.linkedin.com/pulse/types-relationships-object-oriented-programming-oop-sarah-el-dawody/) - [Common types of OOP relationships and their UML representation](https://dev.to/tommyc/common-types-of-oop-relationships-and-their-uml-representation-5b27) - [Association, aggregation, and composition in OOP explained](https://www.infoworld.com/article/3029325/exploring-association-aggregation-and-composition-in-oop.html) - [Data Modeling 101](http://www.agiledata.org/essays/dataModeling101.html) - [UML Notation](https://www.vertabelo.com/blog/uml-notation/) - [UML Association vs Aggregation vs Composition](https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-aggregation-vs-composition/) ================================================ FILE: docs/modeling/tools.md ================================================ # Tools - [Diagrams.Net](https://www.diagrams.net) - [IcePanel](https://icepanel.io) - [Vertabelo](https://vertabelo.com) - [Reverse engineering - vertabelo](https://vertabelo.com/documentation/physical-model/reverse-engineering-doc/) - [LucidChart](https://www.lucidchart.com/pages/) - [Top 7 Entity Relationship (ER) Diagram Online Tools](https://vertabelo.com/blog/er-diagram-tools/) - [Visual Paradigm](https://www.visual-paradigm.com) - [Creately](https://creately.com) - [CloudSkew](https://app.cloudskew.com) - [ExcaliDraw](https://github.com/excalidraw/excalidraw) ================================================ FILE: docs/modeling/use-case-diagram.md ================================================ # Use Case Diagram ## 📕 Articles - [UML Use Case Diagram: Tutorial with EXAMPLE](https://www.guru99.com/use-case-diagrams-example.html) - [UML 2 Use Case Diagramming Guidelines](http://agilemodeling.com/style/useCaseDiagram.htm) - [Plant UML - Use Case Diagram](https://plantuml.com/use-case-diagram) ================================================ FILE: docs/modular-monolith.md ================================================ # Modular Monolith Architecture ## 📘 Resources - [Modular Monoliths - Simon Brown](https://files.gotocon.com/uploads/slides/conference_12/515/original/gotoberlin2018-modular-monoliths.pdf) ## 📕 Articles - [Modular Monolith: A Primer](http://www.kamilgrzybek.com/design/modular-monolith-primer/) - [My experience of using modular monolith and DDD architectures](https://www.thereformedprogrammer.net/my-experience-of-using-modular-monolith-and-ddd-architectures/) - [Modular Monolith: Architectural Drivers](http://www.kamilgrzybek.com/design/modular-monolith-architectural-drivers/) - [Modular Monolith: Architecture Enforcement](http://www.kamilgrzybek.com/design/modular-monolith-architecture-enforcement/) - [MonolithFirst](https://martinfowler.com/bliki/MonolithFirst.html) - [Modular programming: Beyond the spaghetti mess](https://www.tiny.cloud/blog/modular-programming-principle/) - [Migrating Monoliths to Microservices with Decomposition and Incremental Changes](https://www.infoq.com/articles/migrating-monoliths-to-microservices-with-decomposition/) - [Decompose your monolith: Ten principles for refactoring a monolith to microservices](https://chrisrichardson.net/post/refactoring/2020/08/21/ten-principles-for-refactoring-to-microservices.html) - [Decompose Your Monolith: Strategies for Migrating to Microservices](https://chrisrichardson.net/post/refactoring/2019/10/09/refactoring-to-microservices.html) - [Making Modular Monoliths Work](https://sookocheff.com/post/architecture/making-modular-monoliths-work/) - [Loosely Coupled Monolith Overview](https://codeopinion.com/loosely-coupled-monolith/) - [My experience of using the Clean Code architecture with a Modular Monolith](https://www.thereformedprogrammer.net/my-experience-of-using-the-clean-code-architecture-with-a-modular-monolith/) - [My experience of using modular monolith and DDD architectures](https://www.thereformedprogrammer.net/my-experience-of-using-modular-monolith-and-ddd-architectures/) - [Evolving modular monoliths: 1. An architecture for .NET](https://www.thereformedprogrammer.net/evolving-modular-monoliths-1-an-architecture-for-net/) - [Evolving modular monoliths: 2. Breaking up your app into multiple solutions](https://www.thereformedprogrammer.net/evolving-modular-monoliths-2-breaking-up-your-app-into-multiple-solutions/) - [Why using Microservices or Monolith can be just a detail?](https://threedots.tech/post/microservices-or-monolith-its-detail/) - [Majestic Modular Monoliths](https://lukashajdu.com/post/majestic-modular-monolith/) - [SHARING DATA BETWEEN MODULES IN MODULAR MONOLITH](https://dev.to/lukaszreszke/sharing-data-between-modules-in-modular-monolith-50on) - [Event Modeling & Modular Monolith | From colored cards to code through TDD](https://zycienakodach.pl/event-modeling-modularny-monolit) - [Monolithic to Microservices Architecture with Patterns & Best Practices](https://medium.com/design-microservices-architecture-with-patterns/monolithic-to-microservices-architecture-with-patterns-best-practices-a768272797b2) - [Improving Monolith's Availability](https://www.ledjonbehluli.com/posts/improving_monoliths_availability/) - [Long live the Monolith! Monolithic Architecture != Big Ball of Mud](https://codeopinion.com/long-live-the-monolith-monolithic-architecture-big-ball-of-mud/) - [Scaling a Monolith Horizontally](https://codeopinion.com/scaling-a-monolith-horizontally/) - [Good and Bad Monolith](https://blog.ttulka.com/good-and-bad-monolith) - [How to quickly scale a legacy monolith?](https://event-driven.io/en/how_to_quickly_scale_a_legacy_monolith/) - [Easy Modular Monolith — Part 1 — MVP](https://itnext.io/easy-modular-monolith-part-1-mvp-d57f47935e24) - [Easy Modular Monolith — Part 2— The OutBox Pattern](https://itnext.io/easy-modular-monolith-part-2-the-outbox-pattern-b4566724fb68) - [Easy Modular Monolith — Part 3 — Logging (Serilog and Seq)](https://itnext.io/easy-modular-monolith-part-3-logging-57caceac1ff5) - [Easy Modular Monolith — Part 4— Global Exception Handling](https://itnext.io/easy-modular-monolith-part-4-global-exception-handling-8355cc4905d4) - [Easy Modular Monolith — Part 5— JWT Authentication/Authorization](https://itnext.io/easy-modular-monolith-part-5-jwt-authentication-authorization-f7a0a275226f) - [Easy Modular Monolith — Part 6 — Synchronous communication between modules](https://itnext.io/easy-modular-monolith-part-5-synchronous-communication-between-modules-7af876f06c16) - [Build the modular monolith first](https://www.fearofoblivion.com/build-a-modular-monolith-first) - [Thoughts on “Modular Monoliths”](https://jeremydmiller.com/2024/04/01/thoughts-on-modular-monoliths/) - [Actually Talking about Modular Monoliths](https://jeremydmiller.com/2024/04/08/actually-talking-about-modular-monoliths/) - [Modular Monoliths and the “Critter Stack”](https://jeremydmiller.com/2024/04/15/modular-monoliths-and-the-critter-stack/) - [Breaking It Down: How to Migrate Your Modular Monolith to Microservices](https://www.milanjovanovic.tech/blog/breaking-it-down-how-to-migrate-your-modular-monolith-to-microservices) - [Modular Monolith - A Gentle Introduction](https://www.dandoescode.com/blog/modular-monolith/a-gentle-introduction) - [Modular Monolith - Implementation Deep Dive](https://www.dandoescode.com/blog/modular-monolith/implementation-deep-dive) - [Modular Monolith - Simplifying the Inner Development Loop with .NET Aspire](https://www.dandoescode.com/blog/modular-monolith/simplifying-the-inner-dev-loop-with-aspire) - [A Practical Guide to Modular Monoliths with .NET](https://chrlschn.dev/blog/2024/01/a-practical-guide-to-modular-monoliths/) ⭐ ## 📺 Videos - [GOTO 2018 • Modular Monoliths • Simon Brown](https://www.youtube.com/watch?v=5OjqD-ow8GE) - [Modular monoliths (Simon Brown) - 2016](https://www.youtube.com/watch?v=kbKxmEeuvc4) - [Modular monoliths by Simon Brown](https://www.youtube.com/watch?v=h_rBDIC51C4) - [Munich .NET Meetup: Modular Monolith Architecture - One to rule them all](https://www.youtube.com/watch?v=tpeOWlif1l4) - [Majestic Modular Monoliths by Axel Fontaine](https://www.youtube.com/watch?v=BOvxJaklcr0) - [Decompose your monolith- when and how to incrementally refactor to microservices](https://vimeo.com/442842127/543b578f38) - [GOTO 2019 • Monolith Decomposition Patterns • Sam Newman](https://www.youtube.com/watch?v=9I9GdSQ1bbM) - [GOTO 2016 • From Monolith to Microservices at Zalando • Rodrigue Schaefer](https://www.youtube.com/watch?v=gEeHZwjwehs) - [How to design and code a scaleable solution (from monolith to microservices)](https://www.youtube.com/watch?v=rzjy2DDPwio) - [Deconstructing the Monolith (Shopify Unite Track 2019)](https://www.youtube.com/watch?v=ISYKx8sa53g) - [Message Driven Architecture to DECOUPLE a Monolith](https://www.youtube.com/watch?v=bxGkavGaEiM) - [Long live the Monolith! Monolithic Architecture != Big Ball of Mud](https://www.youtube.com/watch?v=VGShtGU3hOc) - [Scaling Monolithic Applications](https://www.youtube.com/watch?v=qZB_uGuWvUI) - [Creating a Loosely Coupled Monolith](https://www.youtube.com/watch?v=48C-RsEu0BQ) - [START with a Monolith, NOT Microservices](https://www.youtube.com/watch?v=Z_pj1mUDKdw) - [Solution & Project Structure of a Loosely Coupled Monolith](https://www.youtube.com/watch?v=-1DU9c95ERs) - [Asynchronous Messaging in a Loosely Coupled Monolith](https://www.youtube.com/watch?v=Qi6TaIYprqc) - [Splitting up a Monolith to (micro)Services](https://www.youtube.com/watch?v=Inscvakv5XI) - [Avoiding a Big Ball of Mud! Coupling in a Monolith](https://www.youtube.com/watch?v=MLjjWkN44q4) - [Building that glorious monolith. And carving it too. - Glenn F. Henriksen - NDC Oslo 2022](https://youtu.be/uOIi0K_mpUo) ⭐ - [A Practical Guide to Modular Monoliths with .NET - Build Web Scale Monolithic Architectures](https://www.youtube.com/watch?v=VEggfW0A_Oo) ⭐ ## 🚀 Samples - [kgrzybek/modular-monolith-with-ddd](https://github.com/kgrzybek/modular-monolith-with-ddd) - Full Modular Monolith application with Domain-Driven Design approach. - [kgrzybek/modular-monolith-with-ddd-fe-react](https://github.com/kgrzybek/modular-monolith-with-ddd-fe-react) - FrontEnd React application for Modular Monolith With DDD repository and system - [phongnguyend/Practical.CleanArchitecture](https://github.com/phongnguyend/Practical.CleanArchitecture) - Asp.Net Core 5 Clean Architecture (Microservices, Modular Monolith, Monolith) samples. - [dcomartin/LooselyCoupledMonolith](https://github.com/dcomartin/LooselyCoupledMonolith) - [trueai-org/module-shop](https://github.com/trueai-org/module-shop) - [thangchung/coolstore-moduliths](https://github.com/thangchung/coolstore-moduliths) - [thangchung/blog-core](https://github.com/thangchung/blog-core) - Modular blog using Blazor with clean domain-driven design patterns - [ddd-by-examples/library](https://github.com/ddd-by-examples/library) - A comprehensive Domain-Driven Design example with problem space strategic analysis and various tactical patterns. - [simplcommerce/SimplCommerce](https://github.com/simplcommerce/SimplCommerce) - A simple, cross platform, modularized ecommerce system built on .NET Core - [anton-liauchuk/educational-platform](https://github.com/anton-liauchuk/educational-platform) - Modular Monolith Java application with DDD - [VirtoCommerce/vc-storefront](https://github.com/VirtoCommerce/vc-storefront) - VirtoCommerce Storefront for ASP.NET Core 3.1 repository - [grandnode/grandnode](https://github.com/grandnode/grandnode) - Free and Open Source Ecommerce Shopping Cart solution based on ASP.NET CORE and MongoDB - [smartstore/SmartStoreNET](https://github.com/smartstore/SmartStoreNET) - Open Source ASP.NET MVC Enterprise eCommerce Shopping Cart Solution - [nopSolutions/nopCommerce](https://github.com/nopSolutions/nopCommerce) - The most popular open-source eCommerce shopping cart solution based on ASP.NET Core - [ThreeDotsLabs/monolith-microservice-shop](https://github.com/ThreeDotsLabs/monolith-microservice-shop) - Source code for https://threedots.tech/post/microservices-or-monolith-its-detail/ article. - [marcinstelmach/AwesomeBank](https://github.com/marcinstelmach/AwesomeBank) - Bank system in .NET 5.0 using DDD, CQRS, modular monolith architecture - [stemmlerjs/ddd-forum](https://github.com/stemmlerjs/ddd-forum) - Hacker news-inspired forum app built with TypeScript using DDD practices from solidbook.io. - [grandnode/grandnode2](https://github.com/grandnode/grandnode2) - Open source, headless, multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, Vue.js. - [DarekModzelewski/Contoso-University-DDD](https://github.com/DarekModzelewski/Contoso-University-DDD) - [ttulka/ddd-example-ecommerce](https://github.com/ttulka/ddd-example-ecommerce) - Domain-driven design example in Java with Spring framework - [mgce/modular-monolith-nodejs](https://github.com/mgce/modular-monolith-nodejs) - A project showing the implementation of the modular monolith architecture in Node.js. - [drminnaar/chinook](https://github.com/drminnaar/chinook) - A playground for demonstrating concepts such as architecture, design, dotnet core, typescript, react, database and docker - [ttulka/ddd-example-ecommerce-kotlin](https://github.com/ttulka/ddd-example-ecommerce-kotlin) - Domain-driven design example in Kotlin with Spring framework - [DijanaPenic/DDD-VShop](https://github.com/DijanaPenic/DDD-VShop) - VShop is a sample .NET 6 application built as Modular Monolith with Domain-Driven Design (DDD) approach. Each module is an independent vertical slice with its custom architecture. - [Ridikk12/ModularMonolith](https://github.com/Ridikk12/ModularMonolith) - [thangchung/coffeeshop-modular](https://github.com/thangchung/coffeeshop-modular) - .NET coffee shop application with modular approach - [chrisklug/asp-net-modular-monolith](https://github.com/chrisklug/asp-net-modular-monolith) - [Nairda015/IGroceryStore](https://github.com/Nairda015/IGroceryStore) - IGroceryStore - Loosely coupled monolith app - [evolutionary-architecture/evolutionary-architecture-by-example](https://github.com/evolutionary-architecture/evolutionary-architecture-by-example) ⭐ - Navigate the complex landscape of .NET software architecture with our step-by-step, story-like guide. Unpack the interplay between modular monoliths, microservices, domain-driven design, and various architectural patterns - [kamilbaczek/Estimation-Tool](https://github.com/kamilbaczek/Estimation-Tool) ⭐ - Modular monolith architecture example in .NET. Estimation Tool is tool to optimize estimation process in IT company. - [baranacikgoz/modular-monolith-ddd-vsa-webapi](https://github.com/baranacikgoz/modular-monolith-ddd-vsa-webapi) - A .NET 8 Webapi boilerplate with Modular Monolith approach, Domain-Driven Design and Vertical Slices architecture along with Clean Architecture principles per feature - [kamilbaczek/Modular-monolith-by-example](https://github.com/kamilbaczek/Modular-monolith-by-example) - Modular monolith architecture example in .NET. Estimation Tool is tool to optimize estimation process in IT company. - [PeterKneale/modular_monolith_saas](https://github.com/PeterKneale/modular_monolith_saas) - [youssefbennour/AspNetCore.Starter](https://github.com/youssefbennour/AspNetCore.Starter) - A modular-monolith ASP.NET Core starter inspired by Evolutionary-architecture - [CharlieDigital/dn8-modular-monolith](https://github.com/CharlieDigital/dn8-modular-monolith) ⭐ - A practical example of how to build modular monoliths ("momo") with .NET 8 ================================================ FILE: docs/object-oriented-design.md ================================================ # Object Oriented Design ## 📘 Resources - [tssovi/grokking-the-object-oriented-design-interview](https://github.com/tssovi/grokking-the-object-oriented-design-interview) ================================================ FILE: docs/onion-architecture.md ================================================ # Onion Architecture ## 📕 Articles - [Onion Architecture In ASP.NET Core With CQRS – Detailed](https://codewithmukesh.com/blog/onion-architecture-in-aspnet-core/) - [Onion Architecture](https://herbertograca.com/2017/09/21/onion-architecture/) - [The Onion Architecture : part 1](https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1) - [The Onion Architecture : part 2](https://jeffreypalermo.com/2008/07/the-onion-architecture-part-2) - [The Onion Architecture : part 3](https://jeffreypalermo.com/2008/08/the-onion-architecture-part-3) - [Onion Architecture: Part 4 – After Four Years](https://jeffreypalermo.com/2013/08/onion-architecture-part-4-after-four-years/) - [Understanding Onion Architecture](https://www.codeguru.com/csharp/csharp/cs_misc/designtechniques/understanding-onion-architecture.html) - [Clean architecture series — Part 2](https://dev.to/pereiren/clean-architecture-series-part-2-49db) - [A simple template for Onion Architecture with .NET 5](https://dev.to/pereiren/a-simple-template-for-onion-architecture-with-net-5-3gll) - [Peeling Back the Onion Architecture](https://blog.tonysneed.com/2011/10/08/peeling-back-the-onion-architecture/) ## 📺 Videos - [Distributed Onion Architecture - Fort Worth .Net User Group 8/20/2013 - Jeffrey Palermo](https://www.youtube.com/watch?v=uuCaXu_kl0U) ## 🚀 Samples - [Amitpnk/Onion-architecture-ASP.NET-Core](https://github.com/Amitpnk/Onion-architecture-ASP.NET-Core) - WhiteApp API solution template which is built on Onion Architecture with all essential feature using .NET Core! - [pereiren/dotnet-template-onion](https://github.com/pereiren/dotnet-template-onion) - Onion Architecture with .NET 5/.NET Core and CQRS/Event Sourcing following a DDD approach - [iammukeshm/OnionArchitecture](https://github.com/iammukeshm/OnionArchitecture) - The onion architecture, introduced by Jeffrey Palermo, overcomes the issues of the layered architecture with great ease. With Onion Architecture, the game-changer is that the Domain Layer (Entities and Validation Rules that are common to the business case ) is at the Core of the Entire Application. This means higher flexibility and lesser coupling ================================================ FILE: docs/open-source.md ================================================ # Open Source ## 📘 Resources - [Open Source Guides](https://opensource.guide/) - Open source software is made by people just like you. Learn how to launch and grow your project. - [firstcontributions/first-contributions](https://github.com/firstcontributions/first-contributions) - Help beginners to contribute to open source projects - [MarcDiethelm/contributing](https://github.com/MarcDiethelm/contributing) - How to make a clean pull request on Github ## 📕 Articles - [Step-by-step guide to contributing on GitHub](https://www.dataschool.io/how-to-contribute-on-github/) - [How to get started with Open Source?](https://event-driven.io/en/how_to_start_with_open_source/) - [What does it mean to be a maintainer?](https://opensource.guide/best-practices/) - [From idea to feature, what is the life cycle of an open source product?](https://blog.kuzzle.io/life-cycle-open-source-product) - [How to become an Open Source Software contributor?](https://sagikazarmark.hu/blog/how-to-become-an-open-source-software-contributor/) - [6 Proven Guidelines on Open Sourcing From Tumblr](https://newsletter.systemdesign.one/p/open-source-guidelines) ## 📺 Videos - [Complete Guide to Open Source - How to Contribute](https://www.youtube.com/watch?v=yzeVMecydCE) ## Courses - [How to Contribute to an Open Source Project on GitHub](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github) - [Open Source Your GitHub Project](https://www.pluralsight.com/courses/open-source-your-github-project) - [Contributing to an Open Source Project on GitHub](https://www.pluralsight.com/courses/contributing-open-source-project-github) ================================================ FILE: docs/others.md ================================================ # Others ## Engineering Blogs - [Uber](https://eng.uber.com) - [Twitter](https://blog.twitter.com/engineering/en_us.html) - [Netflix Engineering Blog](https://netflixtechblog.com/?gi=133ebc0bdafe) - [Netflix Architecture Blog](https://netflixtechblog.com/tagged/architecture) - [Spotify Engineering Blog](https://engineering.atspotify.com) - [Amazon](https://aws.amazon.com/blogs/aws/) - [Amazon Architecture blog](https://aws.amazon.com/blogs/architecture/) - [kilimchoi/engineering-blogs](https://github.com/kilimchoi/engineering-blogs) - A curated list of engineering blogs - [Wix Engineering](https://medium.com/wix-engineering/) ================================================ FILE: docs/paas/heroku.md ================================================ # Heroku ## 📘 Resources - [https://elements.heroku.com](https://elements.heroku.com) ## 📝 Articles - [Deploy a Containerized ASP.NET Core App to Heroku using GitHub Actions](https://codeburst.io/deploy-a-containerized-asp-net-core-app-to-heroku-using-github-actions-9e54c72db943) - [Deploy ASP .NET Core MVC app with PostgreSQL to Heroku using GitHub Action](https://theanzy.github.io/blog/.net/core/2021/05/13/Deploy-AspNET-Core-MVC-to-docker-Heroku.html) - [Hosting ASP.NET Core on Heroku](https://dotnetthoughts.net/hosting-aspnet-core-on-heroku/) - [Hosting ASP.NET Core applications on Heroku using Docker](https://dotnetthoughts.net/hosting-aspnet-core-applications-on-heroku-using-docker/) - [application (.NET Core) and host it in the Heroku cloud](https://zimmergren.net/building-an-asp-net-5-web-application-net-core-and-host-it-in-the-heroku-cloud/) - [Building a MEAN (MongoDB, ExpressJs, Angular and Node.js) API app using TypeScript and host it with Heroku](https://zimmergren.net/building-a-mean-mongodb-expressjs-angular-and-node-js-api-app-using-typescript-and-host-it-with-heroku/) - [How do I switch branches from master to main?](https://help.heroku.com/O0EXQZTA/how-do-i-switch-branches-from-master-to-main) - [How to Set Environment Variables on Heroku](https://catalins.tech/heroku-environment-variables) - [Deploy a PostgreSQL Database on Heroku](https://catalins.tech/heroku-postgres) - [Heroku: How to push different local Git branches to Heroku/master](https://stackoverflow.com/questions/2971550/heroku-how-to-push-different-local-git-branches-to-heroku-master) - [Deploying with Git](https://devcenter.heroku.com/articles/git) - [Deploy a PostgreSQL Database on Heroku](https://catalins.tech/heroku-postgres) - [Deploying Spring Boot Apps to Heroku using Docker](https://toedter.com/2016/11/05/deploying-spring-boot-apps-to-heroku-using-docker/) ⭐ - [Deploying .NET Core to Heroku](https://dev.to/alrobilliard/deploying-net-core-to-heroku-1lfe) ⭐ ## 📹 Videos - [Deploy Asp.Net Core Website on Heroku using Docker](https://www.youtube.com/watch?v=gQMT4al2Grg) ## 🚀 Samples - [dotnet-labs/HerokuContainer](https://github.com/dotnet-labs/HerokuContainer) - Dockerized ASP.NET Core Web API app in Heroku - [thangchung/todo-dotnet6](https://github.com/thangchung/todo-dotnet6) - This is todo app on .NET 6 and deploy to Heroku - [jincod/AspNetCoreDemoApp](https://github.com/jincod/AspNetCoreDemoApp) - ASP.NET Core demo app with webpack bundle - [heroku/heroku-repo](https://github.com/heroku/heroku-repo) - Plugin for heroku CLI that can manipulate the repo ## 📦 Libraries - [jincod/dotnetcore-buildpack](https://github.com/jincod/dotnetcore-buildpack) - Heroku .NET Core Buildpack - [heroku/heroku-repo](https://github.com/heroku/heroku-repo) - Plugin for heroku CLI that can manipulate the repo - [marketplace/actions/deploy-to-heroku](https://github.com/marketplace/actions/deploy-to-heroku) - A simple github action that dynamically deploys an app to heroku ================================================ FILE: docs/paas/netlify.md ================================================ # Netlify ## 📝 Articles ## 📹 Videos - [How to host a Blazor C# project for FREE](https://www.youtube.com/watch?v=8NOmadyM1Ao) ================================================ FILE: docs/paas/openshift.md ================================================ # OpenShift ================================================ FILE: docs/paas/rancher.md ================================================ # Rancher ## 📘 Resources [Rancher GitHub](https://github.com/rancher/rancher) - Complete container management platform. ## 📕 Articles - [The Enterprise Grade Rancher Deployment Guide](https://blog.kubernauts.io/enterprise-grade-rancher-deployment-guide-ubuntu-fd261e00994c) - [How to – Set up a highly available instance of Rancher](https://blog.ronnyvdb.net/2019/01/20/howto-set-up-a-highly-available-instance-of-rancher/) ## 🚀 Samples - [arashkaffamanesh/multipass-rke-rancher](https://github.com/arashkaffamanesh/multipass-rke-rancher) - Rancher Kubernetes Engine and Rancher Server on Multipass VMs ================================================ FILE: docs/refactoring.md ================================================ # Refactoring ## 📕 Articles - [Refactoring huge C# code base in minutes](https://laurentkempe.com/2023/02/20/refactoring-huge-csharp-code-base-in-minutes/) - [Refactoring Legacy Code with the Strangler Fig Pattern](https://shopify.engineering/refactoring-legacy-code-strangler-fig-pattern) ## 📺 Videos - [The refactoring test (1) - Dependency Inversion & Unit tests | Cracking the .NET interview](https://www.youtube.com/watch?v=U3QvTaw224o) - [The refactoring test (2) - Open-Closed, Single Responsibility | Cracking the .NET interview](https://www.youtube.com/watch?v=Yd4GnWeEkIY) ## 📚 Books - [Refactoring - Improving the Design of Existing Code, Martin Fowler](https://martinfowler.com/books/refactoring.html) ================================================ FILE: docs/rest.md ================================================ # RESTful API Design ## 📚 Books - [The Design of Web APIs, Arnaud Lauret](https://www.manning.com/books/the-design-of-web-apis) ## 📘 Resources - [https://restfulapi.net](https://restfulapi.net) - [whitehouse/api-standards](https://github.com/whitehouse/api-standards) - [adidas API Guidelines](https://adidas.gitbook.io/api-guidelines/) ## 📕 Articles - [What is REST](https://restfulapi.net) - [Microsoft REST API Guidelines](https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md) - [Design Guidelines](http://apistylebook.com/design/guidelines/) - [REST API Naming Conventions](https://restfulapi.net/resource-naming/) - [Web API design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design) - [Richardson Maturity Model](https://martinfowler.com/articles/richardsonMaturityModel.html) - [RESTful API Design: 13 Best Practices to Make Your Users Happy](https://florimond.dev/blog/articles/2018/08/restful-api-design-13-best-practices-to-make-your-users-happy/) - [Best Practices for Designing a Pragmatic RESTful API](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api) - [Design Guidelines](http://apistylebook.com/design/guidelines/) - [The Web API Checklist -- 43 Things To Think About When Designing, Testing, and Releasing your API](https://mathieu.fenniak.net/the-api-checklist/) - [Design Topics](http://apistylebook.com/design/topics/) - [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md) - [REST lessons learned](https://blog.ploeh.dk/2013/04/29/rest-lessons-learned/) - [REST Architectural Constraints](https://restfulapi.net/rest-architectural-constraints/) - [Caching REST API Response](https://restfulapi.net/caching/) - [REST Resource Representation Compression](https://restfulapi.net/rest-resource-compression/) - [Content Negotiation in REST APIs](https://restfulapi.net/content-negotiation/) - [HATEOAS Driven REST APIs](https://restfulapi.net/hateoas/) - [Idempotent REST APIs](https://restfulapi.net/idempotent-rest-apis/) - [REST API Security Essentials](https://restfulapi.net/security-essentials/) - [REST API Versioning](https://restfulapi.net/versioning/) - [Statelessness in REST APIs](https://restfulapi.net/statelessness/) - [Comparing SOAP vs REST APIs](https://restfulapi.net/soap-vs-rest-apis/) - [HTTP Methods](https://restfulapi.net/http-methods/) - [HTTP Status Codes](https://restfulapi.net/http-status-codes/) - [What is an API?](https://restfulapi.net/what-is-an-api/) - [REST – PUT vs POST](https://restfulapi.net/rest-put-vs-post/) - [HTTP Status Codes Cheatsheet](https://vishnuch.tech/http-status-codes-cheatsheet) - [Zalando RESTful API and Event Guidelines](https://opensource.zalando.com/restful-api-guidelines/index.html) - [CRUD API Design & CRUD API Recommendations](https://stoplight.io/blog/crud-api-design/) - [Principles & Best practices of REST API Design](https://zonito.medium.com/best-practice-and-cheat-sheet-for-rest-api-design-6a6e12dfa89f) - [Principles & Best practices of REST API Design](https://blog.devgenius.io/best-practice-and-cheat-sheet-for-rest-api-design-6a6e12dfa89f) - [RESTful web API design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design) - [Web API implementation](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-implementation) - [ENSURING THE CORRECTNESS OF YOUR API](https://www.natmarchand.fr/ensuring-correctness-api/) ## 📺 Videos - [Nate Barbettini – API Throwdown: RPC vs REST vs GraphQL, Iterate 20](https://www.youtube.com/watch?v=IvsANO0qZEg) ================================================ FILE: docs/reverse-proxy-lb/envoy.md ================================================ # Envoy ## 📘 Resources - [Learn Envoy Fundamentals](https://academy.tetrate.io/courses/envoy-fundamentals) ## Articles - [Envoy as an API Gateway: Part I](https://ekhabarov.com/post/envoy-as-an-api-gateway-grpc-microservice/?utm_source=related) - [Envoy as an API Gateway: Part II](https://ekhabarov.com/post/envoy-as-an-api-gateway-envoy-proxy-container/) ## 📺 Videos - [Build an API Gateway with Envoy and use with .NET Core APIs](https://www.youtube.com/watch?v=UsoH5cqE1OA) - [Microservices NET 6.0 | Gateway Envoy | Docker Compose | Visual Studio 2022](https://www.youtube.com/watch?v=-6FPkXrkPnU) - [Load balancing and HTTP Routing with Envoy Proxy](https://www.youtube.com/watch?v=D0cuv1AEftE) - [Envoy Proxy Crash Course, Architecture, L7 & L4 Proxying, HTTP/2, Enabling TLS 1.2/1.3 and more](https://www.youtube.com/watch?v=40gKzHQWgP0) - [The hardest part of operating a service mesh: Envoy Proxy](https://www.youtube.com/watch?v=oQ600fSfbXk) ## 📦 Libraries - [envoyproxy/gateway](https://github.com/envoyproxy/gateway) - Manages Envoy Proxy as a Standalone or Kubernetes-based Application Gateway ## 🚀 Samples - [jbw/TooBigToFailBurgerShop](https://github.com/jbw/TooBigToFailBurgerShop/tree/develop/src/services/ApiGateway/Envoy) - [anubhavmishra/envoy-consul-sds](https://github.com/anubhavmishra/envoy-consul-sds) - Envoy Consul Service Discovery Service - [kelseyhightower/kubernetes-envoy-sds](https://github.com/kelseyhightower/kubernetes-envoy-sds) - https://github.com/kelseyhightower/kubernetes-envoy-sds - [bakins/kubernetes-envoy-example](https://github.com/bakins/kubernetes-envoy-example) - Teaching myself about Envoy on Kubernetes ================================================ FILE: docs/reverse-proxy-lb/fabio.md ================================================ ================================================ FILE: docs/reverse-proxy-lb/haproxy.md ================================================ # HAProxy ## 📕 Articles ## 📺 Videos ================================================ FILE: docs/reverse-proxy-lb/load-balancing.md ================================================ # Load Balancing ## 📕 Articles - [Introducing Consistent Hashing](https://itnext.io/introducing-consistent-hashing-9a289769052e) - [A Guide to Consistent Hashing](https://www.toptal.com/big-data/consistent-hashing) ## 📺 Videos - [What is Load Balancing?](https://www.youtube.com/watch?v=K0Ta65OqQkY) ## Libraries - [k3s-io/klipper-lb](https://github.com/k3s-io/klipper-lb) - Embedded service load balancer in Klipper - [traefik/traefik](https://github.com/traefik/traefik) - The Cloud Native Application Proxy - [envoyproxy/envoy](https://github.com/envoyproxy/envoy) - Cloud-native high-performance edge/middle/service proxy ## 🚀 Samples - [giansalex/aspnetcore-load-balancing](https://github.com/giansalex/aspnetcore-load-balancing) - ASP.NET Core 5.0 - Load Balancing with Nginx | Traefik | Caddy - Alpine - Docker ================================================ FILE: docs/reverse-proxy-lb/metallb.md ================================================ # MetalLB ## 📘 Resources [MetalLB GitHub](https://github.com/metallb/metallb) - A network load-balancer implementation for Kubernetes using standard routing protocols ## 📕 Articles - [Metallb INSTALLATION](https://metallb.universe.tf/installation/) - [Metallb CONFIGURATION](https://metallb.universe.tf/configuration/) - [Option to listen on specific IP address](https://github.com/metallb/metallb/issues/1159) - [Metallb FAQ](https://metallb.universe.tf/faq/) - [Metallb Usage](https://metallb.universe.tf/usage/) - [Using MetalLB And Traefik Load Balancing For Your Bare Metal Kubernetes Cluster – Part 1](https://www.devtech101.com/2019/02/23/using-metallb-and-traefik-load-balancing-for-your-bare-metal-kubernetes-cluster-part-1/) - [Using Traefik As Your Ingress Controller Combined With MetalLB On Your Bare Metal Kubernetes Cluster – Part 2](https://www.devtech101.com/2019/03/02/using-traefik-as-your-ingress-controller-combined-with-metallb-on-your-bare-metal-kubernetes-cluster-part-2/) - [Running k3s with metallb on Vagrant](https://medium.com/@toja/running-k3s-with-metallb-on-vagrant-bd9603a5113b) ## 📺 Videos - [Deploy MetalLB in Kubernetes | Load Balancing solution](https://www.youtube.com/watch?v=LMOYOtzpoXg) - [Deploying & Using MetalLB in KinD Kubernetes Cluster](https://www.youtube.com/watch?v=zNbqxPRTjFg) - [How to deploy & use MetalLB in bare metal Kubernetes](https://www.youtube.com/watch?v=2SmYjj-GFnE) ================================================ FILE: docs/reverse-proxy-lb/nginx.md ================================================ # Nginx ## 📕 Articles - [Using a Network Load Balancer with the NGINX Ingress Controller on Amazon EKS](https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/) - [Host ASP.NET Core on Linux with Nginx](https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx) ## 🚀 Samples - [giansalex/aspnetcore-load-balancing](https://github.com/giansalex/aspnetcore-load-balancing) - ASP.NET Core 5.0 - Load Balancing with Nginx | Traefik | Caddy - Alpine - Docker ================================================ FILE: docs/reverse-proxy-lb/reverse-proxy.md ================================================ # Reverse Proxy ## 📦 Libraries - [proxykit/ProxyKit](https://github.com/proxykit/ProxyKit) - A toolkit to create code-first HTTP reverse proxies on ASP.NET Core - [microsoft/YARP](https://github.com/microsoft/reverse-proxy) - A toolkit for developing high-performance HTTP reverse proxy applications. - [Drawaes/CondenserDotNet](https://github.com/Drawaes/CondenserDotNet) - API Condenser / Reverse Proxy using Kestrel and Consul, Including light weight consul lib ================================================ FILE: docs/reverse-proxy-lb/traefik.md ================================================ # Traefik ## 📕 Articles - [Integrating Consul Connect Service Mesh with Traefik 2.5](https://traefik.io/blog/integrating-consul-connect-service-mesh-with-traefik-2-5/) - [Migration Guide: From v1 to v2](https://doc.traefik.io/traefik/migration/v1-to-v2/) - [Traefik Proxy Now Fully Integrates with Hashicorp Nomad](https://traefik.io/blog/traefik-proxy-fully-integrates-with-hashicorp-nomad/) - [Infrastructure with Traefik and Cloudflare](https://marcmogdanz.de/posts/infrastructure-with-traefik-and-cloudflare/) - [Install And Configure Traefik Proxy with Helm](https://traefik.io/blog/install-and-configure-traefik-with-helm/) - [Use the Helm Chart](https://doc.traefik.io/traefik/getting-started/install-traefik/#use-the-helm-chart) ⭐ - [Traefik & Kubernetes](https://doc.traefik.io/traefik/providers/kubernetes-ingress/) ⭐ - [Quick Start Traefik](https://doc.traefik.io/traefik/getting-started/quick-start-with-kubernetes/) ⭐ - [Let's Encrypt](https://doc.traefik.io/traefik/https/acme/) - [How to deploy Traefik Ingress Controller on Kubernetes using Helm](https://platform9.com/learn/v1.0/tutorials/traefik-ingress) ⭐ - [How to Configure Traefik for Routing Applications in Kubernetes](https://www.alibabacloud.com/blog/how-to-configure-traefik-for-routing-applications-in-kubernetes_594720) - [Combining Ingress Controllers and External Load Balancers with Kubernetes](https://traefik.io/blog/combining-ingress-controllers-and-external-load-balancers-with-kubernetes/) - [Understanding Kubernetes services & ingress networking](https://www.cortex.io/post/understanding-kubernetes-services-ingress-networking) ⭐ - [Integrating Consul Connect Service Mesh with Traefik 2.5](https://traefik.io/blog/integrating-consul-connect-service-mesh-with-traefik-2-5/) - [EntryPoints](https://doc.traefik.io/traefik/routing/entrypoints/) ## 📺 Videos - [Traefik v2 in Kubernetes - Just me and Opensource](https://www.youtube.com/playlist?list=PL34sAs7_26wNldKrBBY_uagluNKC9cCak) - [Traefik v2 | Part 1 | How to deploy in Kubernetes](https://www.youtube.com/watch?v=dEAtD9PVr_Q) - [Traefik v2 | Part 2 | Creating IngressRoutes](https://www.youtube.com/watch?v=6_wRqKmx7QU&t=0s) - [Traefik v2 | Part 3 | Dealing with TLS certificates](https://www.youtube.com/watch?v=7CWc7BLITSQ) - [Traefik v2 | Part 4 | Exploring Middlewares](https://www.youtube.com/watch?v=O1YeaEW3Tms) - [Traefik v2 | Part 5 | Exposing Dashboard](https://www.youtube.com/watch?v=klFwSx5m87I) - [Traefik v2 | Part 6 | Weighted Round Robin](https://www.youtube.com/watch?v=PVf2nxQXp-E) - [Set up Traefik Ingress on kubernetes Bare Metal Cluster](https://www.youtube.com/watch?v=A_PjjCM1eLA) - [Traefik (Ingress) Kubernetes Setup](https://www.youtube.com/watch?v=KRl5wpbi60Y) - [Rancher K3S Ingress Demo with Traefik](https://www.youtube.com/watch?v=12taKl5iCpA) - [Wildcard Certificates with Traefik + cert-manager + Let's Encrypt in Kubernetes Tutorial](https://www.youtube.com/watch?v=G4CmbYL9UPg) - [Self-Hosting Your Homelab Services with SSL -- Let's Encrypt, MetalLB, Traefik, Rancher, Kubernetes](https://www.youtube.com/watch?v=pAM2GBCDGTo) ## Libraries - [traefik/traefik-helm-chart](https://github.com/traefik/traefik-helm-chart) - Traefik v2 helm chart ## Courses - [Master Traefik Proxy With K3s](https://academy.traefik.io/courses/master-traefik-proxy-with-k3s) - [Advanced Load Balancing](https://academy.traefik.io/courses/advanced-load-balancing-w-traefik-proxy) - [GitOps For Reliable Kubernetes](https://academy.traefik.io/courses/gitops-for-reliable-kubernetes) ## 🚀 Samples - [giansalex/aspnetcore-load-balancing](https://github.com/giansalex/aspnetcore-load-balancing) - ASP.NET Core 5.0 - Load Balancing with Nginx | Traefik | Caddy - Alpine - Docker ================================================ FILE: docs/reverse-proxy-lb/yarp.md ================================================ # YARP ## 📘 Resources - [microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy) - A toolkit for developing high-performance HTTP reverse proxy applications. ## 📕 Articles - [PROTECTING LEGACY APIS WITH AN ASP.NET CORE YARP REVERSE PROXY AND AZURE AD OAUTH](https://damienbod.com/2021/01/11/protecting-legacy-apis-with-an-asp-net-core-yarp-reverse-proxy-and-azure-ad-oauth/) - [Introducing YARP Preview 1](https://devblogs.microsoft.com/dotnet/introducing-yarp-preview-1/) - [Getting Started with YARP](https://microsoft.github.io/reverse-proxy/articles/getting-started.html) - [Duende Use a fully fledged Reverse Proxy](https://docs.duendesoftware.com/identityserver/v5/bff/apis/remote/) - [Transformers](https://microsoft.github.io/reverse-proxy/articles/transforms.html) - [Use YARP to host client and API server on a single origin to avoid CORS](https://swimburger.net/blog/dotnet/use-yarp-to-host-client-and-api-server-on-a-single-origin) - [Using YARP as BFF within .NET Aspire: Integrating YARP into .NET Aspire](https://timdeschryver.dev/blog/integrating-yarp-within-dotnet-aspire) - [YARP Kubernetes Ingress Controller](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/yarp/kubernetes-ingress) - [Deploying an Ingress and Reverse Proxy](https://hansgaron.com/articles/microservices/adding_an_ingress/) ## 📺 Videos - [Lessons Learned from Building the YARP Proxy on .NET](https://www.youtube.com/watch?v=WJcjlSEXqWA) - [YARP: The .NET Reverse proxy](https://docs.microsoft.com/en-us/shows/On-NET/YARP-The-NET-Reverse-proxy) - [Building FeedR - API Gateway with YARP (Microservices with .NET 6.0) episode #3](https://www.youtube.com/watch?v=jn0SFUennII) - [ASP.NET Community Standup - YARP 1.1 Release](https://www.youtube.com/watch?v=2AERbOJwXG4) - [Migrate Your Legacy ASP.NET Projects to ASP.NET Core Incrementally with YARP | .NET Conf 2022](https://www.youtube.com/watch?v=XQyCgwB_szI) - [Reverse proxying is easy with YARP | .NET Conf 2023](https://www.youtube.com/watch?v=P8y8NAroVKk) ## 🚀 Samples - [manfredsteyer/yarp-auth-proxy](https://github.com/manfredsteyer/yarp-auth-proxy) - [damienbod/AspNetCoreYarp](https://github.com/damienbod/AspNetCoreYarp) - ASP.NET Core & Yarp reverse proxy with Azure AD OIDC, OAuth2 - [thangchung/bff-auth](https://github.com/thangchung/bff-auth) - The demonstration of modern authentication using BFF - [vietnam-devs/coolstore-microservices](https://github.com/vietnam-devs/coolstore-microservices/blob/main/src/BFFs/WebApiGateway/Startup.cs) - [thangchung/northwind-dotnet](https://github.com/thangchung/northwind-dotnet/blob/main/AppGateway/appsettings.json) - [thangchung/clean-architecture-dotnet](https://github.com/thangchung/clean-architecture-dotnet/blob/main/samples/AppGateway/appsettings.json) - [khalidabuhakmeh/YarpReverseProxyFlowThroughAuth](https://github.com/khalidabuhakmeh/YarpReverseProxyFlowThroughAuth) - [cecilphillip/yarp-samples](https://github.com/cecilphillip/yarp-samples) - Samples for setting up YARP and HTTP APIs ================================================ FILE: docs/scaling.md ================================================ # Scaling ## 📘 Resources - [Developer-Y/Scalable-Software-Architecture](https://github.com/Developer-Y/Scalable-Software-Architecture) - Collection of tech talks, papers and web links on Distributed Systems, Scalability and System Design. - [Scalability, Availability & Stability Patterns](http://www.slideshare.net/jboner/scalability-availability-stability-patterns/) ## 📕 Articles - [8 Reasons Why WhatsApp Was Able to Support 50 Billion Messages a Day With Only 32 Engineers](https://newsletter.systemdesign.one/p/whatsapp-engineering) - [How Disney+ Hotstar Scaled to 25 Million Concurrent Users](https://newsletter.systemdesign.one/p/hotstar-scaling) - [How LinkedIn Scaled to 930 Million Users](https://newsletter.systemdesign.one/p/scalable-software-architecture) - [Scalability for Dummies - Part 1: Clones](https://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones) - [Scalability for Dummies - Part 2: Database](https://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database) - [Scalability for Dummies - Part 3: Cache](https://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache) - [Scalability for Dummies - Part 4: Asynchronism](https://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism) - [Scalable System Design Patterns](http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html) - [Scalable System Design](http://horicky.blogspot.com/2008/02/scalable-system-design.html) - [Database Scalability](http://horicky.blogspot.com/2008/03/database-scalability.html) - [Web Site Scalability](http://horicky.blogspot.com/2008/03/web-site-scalability.html) - [Introduction to architecting systems for scale](https://lethain.com/introduction-to-architecting-systems-for-scale/#platform_layer) - [How to design a system to scale to your first 100 million users](https://levelup.gitconnected.com/how-to-design-a-system-to-scale-to-your-first-100-million-users-4450a2f9703d) - [How to scale projections in the event-driven systems?](https://event-driven.io/en/how_to_scale_projections_in_the_event_driven_systems/) - [Scaling services with Shard Manager](https://engineering.fb.com/2020/08/24/production-engineering/scaling-services-with-shard-manager/) - [Autoscaling](https://docs.microsoft.com/en-us/azure/architecture/best-practices/auto-scaling) - [When Scaling Is Not An Option: A Simple Asynchronous Pattern](https://betterprogramming.pub/when-scaling-is-not-an-option-a-simple-asynchronous-pattern-c84215a695a2) - [Scaling Backend to 1M requests with just 2GB ram](https://dev.to/rikenshah/scaling-backend-to-1m-requests-with-just-2gb-ram-4m0c) - [System Design: How to Scale a Database](https://blog.algomaster.io/p/system-design-how-to-scale-a-database) - [Database Scaling](https://www.mongodb.com/resources/basics/scaling) - [How Discord Stores Trillions of Messages](https://discord.com/blog/how-discord-stores-trillions-of-messages) - [Sharding & IDs at Instagram](https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c) - [Thundering Herds & Promises](https://instagram-engineering.com/thundering-herds-promises-82191c8af57d) ## 📺 Videos - [AWS re:Invent 2019: [REPEAT] Scaling up to your first 10 million users ](https://www.youtube.com/watch?v=kKjm4ehYiMs) - [Scaling Instagram Infrastructure](https://www.youtube.com/watch?v=hnpzNAPiC0E) - [How to design and code a scaleable solution (from monolith to microservices)](https://www.youtube.com/watch?v=rzjy2DDPwio) - [Best Practices Working with Billion-row Tables in Databases](https://www.youtube.com/watch?v=wj7KEMEkMUE) - [Scaling Databases - Web Development](https://www.youtube.com/watch?v=dkhOZOmV7Fo) - [Horizontal vs Vertical Database Partitioning](https://www.youtube.com/watch?v=QA25cMWp9Tk) - [When should you shard your database?](https://www.youtube.com/watch?v=iHNovZUZM3A) - [Python CRUD App hits 2 million rows, Should I Shard my Database?](https://www.youtube.com/watch?v=aXD4tWbkoJo) - [The hardest part of microservices is your data](https://www.youtube.com/watch?v=MrV0DqTqpFU) - [Managing Data in Microservices](https://www.youtube.com/watch?v=E8-e-3fRHBw) - [Data in Microservices](https://www.youtube.com/watch?v=31AD6Nobt1o) - [7 Database Patterns for Microservices Architecture](https://www.youtube.com/watch?v=a_XMsSNdUQA) - [Data Consistency in Microservices Architecture (Grygoriy Gonchar)](https://www.youtube.com/watch?v=CFdPDfXy6Y0) - [MICROSERVICES ARCHITECTURE | INTER MICROSERVICES COMMUNICATION | PART - 7](https://www.youtube.com/watch?v=552Zf6ZE6GE) - [Data Design and Modeling for Microservices](https://www.youtube.com/watch?v=KPtLbSEFe6c) - [Managing Data at Scale: Microservices and Events - Randy Shoup January 2018](https://www.youtube.com/watch?v=tkxJk01Wz6Y) - [Distributed Systems in One Lesson by Tim Berglund](https://www.youtube.com/watch?v=Y6Ev8GIlbxc) - [GOTO 2020 • Moving Fast at Scale • Randy Shoup](https://www.youtube.com/watch?v=R3rXXY6WZ50) - [GOTO 2018 • 5 Reasons to use Reactive Programming if you are not eBay • Grygoriy Gonchar](https://www.youtube.com/watch?v=DIQ9aNkjKZ8) - [Randy Shoup - Service Architectures at Scale Lessons from Google & eBay](https://www.youtube.com/watch?v=fhm4QnyWvUo) - [Cloud Native Objects for High Scale & Performance](https://www.youtube.com/watch?v=iE8cisVgoj8) - [Competing Consumers Pattern for Scalability | Message Queues](https://www.youtube.com/watch?v=xv6Ljbq6me8) ## 📚 Books - [Architecting for Scale: How to Maintain High Availability and Manage Risk in the Cloud 2nd Edition](https://www.amazon.com/Architecting-Scale-Maintain-Availability-Manage/dp/1492057177/) - [Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/) - [Building Event-Driven Microservices: Leveraging Organizational Data at Scale](https://www.amazon.com/Building-Event-Driven-Microservices-Leveraging-Organizational/dp/1492057894/) ================================================ FILE: docs/serverless.md ================================================ # Serverless Architectural Pattern ## 📺 Videos - [Serverless Computing - The TechCave](https://www.youtube.com/watch?v=RzsaM6kL1FU&t=0s) ================================================ FILE: docs/service-discovery/consul.md ================================================ # Consul & Consul Connect ## 📕 Articles - [SCALABLE MICROSERVICES ARCHITECTURE WITH .NET MADE EASY – A TUTORIAL](https://www.endava.com/en/blog/Engineering/2022/Scalable-Microservices-Architecture-with-NET-Made-Easy-a-Tutorial) - [Load Balancing with NGINX and Consul Template](https://learn.hashicorp.com/tutorials/consul/load-balancing-nginx) - [Traefik Proxy Now Fully Integrates with Hashicorp Nomad](https://traefik.io/blog/traefik-proxy-fully-integrates-with-hashicorp-nomad/) - [Consul Connect Integration in HashiCorp Nomad](https://www.hashicorp.com/blog/consul-connect-integration-in-hashicorp-nomad) - [How to Use Consul as a Host Resolver in gRPC](https://hackernoon.com/how-to-use-consul-as-a-host-resolver-in-grpc) - [Consul & Envoy Integration](https://stackoverflow.com/questions/59114004/consul-envoy-integration) - [A Practical Guide to HashiCorp Consul — Part 1](https://medium.com/velotio-perspectives/a-practical-guide-to-hashicorp-consul-part-1-5ee778a7fcf4) - [A Practical Guide To HashiCorp Consul — Part 2](https://medium.com/velotio-perspectives/a-practical-guide-to-hashicorp-consul-part-2-3c0ebc0351e8) ## 📺 Videos - [HashiCorp Consul Introduction: What is a Service Mesh?](https://www.youtube.com/watch?v=UpR-3GBTKsk) - [Consul Service Mesh: Deep Dive](https://www.youtube.com/watch?v=Aq1uTozNajI) - [Getting into HashiCorp Consul, Part 1: Configuring a Server & Client on AWS](https://www.youtube.com/watch?v=_lIJg0c5les) - [Getting into HashiCorp Consul, Part 2: Configuring Service Discovery for Consul on AWS](https://www.youtube.com/watch?v=2PUMjq9-dyk) - [Getting into HashiCorp Consul, Part 3: Scaling, Outage Recovery, and Metrics for Consul on AWS](https://www.youtube.com/watch?v=_lIJg0c5les) - [HashiCorp Consul Introduction: What is a Service Mesh?](https://www.youtube.com/watch?v=UpR-3GBTKsk) - [Consul Service Mesh: Deep Dive](https://www.youtube.com/watch?v=Aq1uTozNajI) - [Understanding Consul Connect](https://www.youtube.com/watch?v=UpR-3GBTKsk) - [Introduction to HashiCorp Consul Connect](https://www.youtube.com/watch?v=8T8t4-hQY74) - [Solutions Engineering Hangout: Consul Connect](https://www.youtube.com/watch?v=QGuzMNC7vnc) - [Consul Connect Demo on Kubernetes](https://www.youtube.com/watch?v=NEEnUnjheI4) ## 📦 Libraries - [Kit.ServiceDiscovery](https://github.com/Chatham/Kit.ServiceDiscovery) - Service discovery kit for .NET microservices - [Drawaes/CondenserDotNet](https://github.com/Drawaes/CondenserDotNet) - API Condenser / Reverse Proxy using Kestrel and Consul, Including light weight consul lib - [G-Research/consuldotnet](https://github.com/G-Research/consuldotnet) - Consul.NET is a .NET client library for the Consul HTTP API - [AlphaYu/RefitConsul](https://github.com/AlphaYu/RefitConsul) - RefitConsul extends the Consul service discovery function of the Refit component, making it easier to call Restful services. - [G-Research/consuldotnet](https://github.com/G-Research/consuldotnet) - Consul.NET is a .NET client library for the Consul HTTP API - [hashicorp/consul-template](https://github.com/hashicorp/consul-template) - Template rendering, notifier, and supervisor for @hashicorp Consul and Vault data. - [jippi/hashi-ui](https://github.com/jippi/hashi-ui) - A modern user interface for @hashicorp Consul & Nomad - [jsiebens/hashi-up](https://github.com/jsiebens/hashi-up) - bootstrap HashiCorp Consul, Nomad, or Vault over SSH < 1 minute - [hashicorp/consul-k8s](https://github.com/hashicorp/consul-k8s) - First-class support for Consul Service Mesh on Kubernetes ## 🚀 Samples - [Endava/Endava.Consul.ServiceDiscovery.Demo](https://github.com/Endava/Endava.Consul.ServiceDiscovery.Demo) - This tutorial shows how to implement simple containerized (Docker) micro service architecture with a gateway, load balancer (Ocelot) and automatic service discovery (Consul). - [surging](https://github.com/fanliang11/surging) - Surging is a micro-service engine that provides a lightweight, high-performance, modular RPC request pipeline. The service engine supports http, TCP, WS,Grpc, Thrift,Mqtt, UDP, and DNS protocols. It uses ZooKeeper and Consul as a registry, and integrates it. Hash, random, polling, Fair Polling as a load balancing algorithm, - [FamilyBucket](https://github.com/q315523275/FamilyBucket) - .net core、ocelot、consul、netty、rpc、eventbus、configserver、tracing、sqlsugar、vue-admin - [GrpcConsul](https://github.com/pchalamet/GrpcConsul) - Sample for GRPC + Consul + dynamic endpoint for .net - [cecilphillip/aspnet-servicediscovery-patterns](https://github.com/cecilphillip/aspnet-servicediscovery-patterns) - Samples of simple service discovery patterns with ASP .NET Core - [matjazbravc/Consul.ServiceDiscovery.Demo](https://github.com/matjazbravc/Consul.ServiceDiscovery.Demo) - This demo shows how to implement simple containerized (Docker) microservice architecture with gateway, load balancer (Ocelot) and automatic service discovery (Consul). - [AlphaYu/Adnc](https://github.com/AlphaYu/Adnc) - .NET6 microservice/distributed development framework, but also suitable for the development of monolithic architecture systems. - [nicholasjackson/consul-servce-mesh-example](https://github.com/nicholasjackson/consul-servce-mesh-example) - [thangchung/coffeeshop-on-nomad](https://github.com/thangchung/coffeeshop-on-nomad) - The .NET coffeeshop application runs on Docker, Nomad and Consul Connect - [discoposse/nomad-vagrant-lab](https://github.com/discoposse/nomad-vagrant-lab) - A nifty little 3-node or 6-node local cluster configuration to run HashiCorp Nomad - [anubhavmishra/envoy-consul-sds](https://github.com/anubhavmishra/envoy-consul-sds) - Envoy Consul Service Discovery Service - [nairnavin/practical-nomad-consul](https://github.com/nairnavin/practical-nomad-consul) - Set up a 3 Tier application (classic springboot petclinic) in a Nomad / Consul cluster leveraging features of service mesh, ingress and terminating gateways, load balancers etc. - [hashicorp/learn-consul-docker](https://github.com/hashicorp/learn-consul-docker) - Docker Compose quick starts for Consul features. ================================================ FILE: docs/service-discovery/eureka.md ================================================ # Eureka ## Articles - [Implementing Service Discovery in Microservices with Eureka](https://harshmatharu.com/blog/service-discovery-in-microservices) ## 🚀 Samples - [matjazbravc/Ocelot.Gateway.Eureka.ServiceDiscovery.Demo](https://github.com/matjazbravc/Ocelot.Gateway.Eureka.ServiceDiscovery.Demo) - In my previus demo I showed how to implement microservice architecture using ASP.NET Core. This demo expands the microservice architecture with gateway load balancer (Ocelot) and service discovery (Eureka). ================================================ FILE: docs/service-discovery/service-discovery.md ================================================ # Service Discovery ## 📕 Articles - [What is service discovery?](https://developer.hashicorp.com/consul/docs/concepts/service-discovery) - [Pattern: Client-side service discovery](https://microservices.io/patterns/client-side-discovery.html) - [Pattern: Server-side service discovery](https://microservices.io/patterns/server-side-discovery.html) - [Pattern: 3rd Party Registration](https://microservices.io/patterns/3rd-party-registration.html) - [Pattern: Service registry](https://microservices.io/patterns/service-registry.html) - [Let's implement basic service discovery using Go](https://itnext.io/lets-implement-basic-service-discovery-using-go-d91c513883f6) - [Service discovery in .NET](https://learn.microsoft.com/en-us/dotnet/core/extensions/service-discovery) - [Lo-Fi Service Discovery in .NET8](https://dev.to/david_whitney/lo-fi-service-discovery-in-net8-2h5o) - [Consul in .NET — A Service Mesh Solution And Service Discovery Tool](https://medium.com/@KeivanDamirchi/consul-in-net-a-service-mesh-solution-and-service-discovery-tool-eff18292c771) - [Service Discovery Using Consul And ASP.NET Core](https://dev.to/raidzen10/service-discovery-using-consul-and-asp-net-core-2c4b) - [How to build .NET Core microservices – tutorial part 3: Service Discovery with Eureka](https://www.altkomsoftware.com/blog/microservices-service-discovery-eureka/) - [Service Discovery in .NET](https://weblogs.asp.net/ricardoperes/service-discovery-in-net) ## 📦 Libraries - [hashicorp/consul](https://github.com/hashicorp/consul) - Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure. - [Kit.ServiceDiscovery](https://github.com/Chatham/Kit.ServiceDiscovery) - Service discovery kit for .NET microservices - [Drawaes/CondenserDotNet](https://github.com/Drawaes/CondenserDotNet) - API Condenser / Reverse Proxy using Kestrel and Consul, Including light weight consul lib - [alibaba/nacos](https://github.com/alibaba/nacos) - an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. - [linkerd/linkerd2](https://github.com/linkerd/linkerd2) - Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x. ## 🚀 Samples - [Abdulsametileri/simple-service-discovery](https://github.com/Abdulsametileri/simple-service-discovery) - Basic service discovery implementation - [matjazbravc/Consul.ServiceDiscovery.Demo](https://github.com/matjazbravc/Consul.ServiceDiscovery.Demo) - This demo shows how to implement simple containerized (Docker) microservice architecture with gateway, load balancer (Ocelot) and automatic service discovery (Consul). - [matjazbravc/Ocelot.Gateway.Eureka.ServiceDiscovery.Demo](https://github.com/matjazbravc/Ocelot.Gateway.Eureka.ServiceDiscovery.Demo) ================================================ FILE: docs/service-mesh/istio.md ================================================ # Istio ## 📘 Resources - [askmeegs/learn-istio](https://github.com/askmeegs/learn-istio) - Istio resources 🕸 - [Learn Istio Fundamentals](https://academy.tetrate.io/courses/istio-fundamentals) ## 📕Articles - [Istio in Kubernetes - Getting Started](https://www.programmingwithwolfgang.com/istio-getting-started) - [Use Istio to manage your Microservices](https://www.programmingwithwolfgang.com/use-istio-to-manage-your-microservices) - [Add Istio to an existing Microservice in Kubernetes](https://www.programmingwithwolfgang.com/add-Istio-to-existing-microservice-in-kubernetes) - [Automated canary deployments with Flagger and Istio](https://medium.com/google-cloud/automated-canary-deployments-with-flagger-and-istio-ac747827f9d1) - [Kubernetes autoscaling with Istio metrics](https://medium.com/google-cloud/kubernetes-autoscaling-with-istio-metrics-76442253a45a) ## 📺 Videos - [Service Mesh: Crash Course on ISTIO (Part I)](https://www.youtube.com/watch?v=-Ib5_4VaWWs) ## 🚀 Samples - [EdwinVW/pitstop](https://github.com/EdwinVW/pitstop/tree/master/src/k8s) - This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious garage. The primary goal of this sample is to demonstrate several software-architecture concepts like: Microservices, CQRS, Event Sourcing, Domain Driven Design (DDD), Eventual Consistency. - [hossambarakat/EspressoShop](https://github.com/hossambarakat/EspressoShop) - Sample application composed of 3 microservices showing Kubernetes and Istio Service Mesh - [kimcu-on-thenet/dnc-k8s-helm](https://github.com/kimcu-on-thenet/dnc-k8s-helm) - An extremely simple .NET Core web api within EntityFrameworkCore which will be deployed in k8s by both kubectl and helm ================================================ FILE: docs/service-mesh/linkerd.md ================================================ # Linkerd ## Courses - [Introduction to Service Mesh with Linkerd](https://training.linuxfoundation.org/training/introduction-to-service-mesh-with-linkerd-lfs143/) ## 🚀 Samples - [linkerd/linkerd-examples](https://github.com/linkerd/linkerd-examples) - Examples of how to configure and run linkerd - [EdwinVW/pitstop](https://github.com/EdwinVW/pitstop/tree/master/src/k8s) - This repo contains a sample application based on a Garage Management System for Pitstop - [BuoyantIO/emojivoto](https://github.com/BuoyantIO/emojivoto) - Example application to help demonstrate the Linkerd service mesh ================================================ FILE: docs/service-mesh/maesh.md ================================================ # Maesh ## 📕 Articles ## 📺 Videos ================================================ FILE: docs/service-mesh/service-mesh.md ================================================ # Service Mesh ## 📕 Articles - [Service Mesh in Kubernetes - Getting Started](https://www.programmingwithwolfgang.com/service-mesh-kubernetes-getting-started) - [Open Lightweight Service Mesh for K8s](https://techcommunity.microsoft.com/t5/apps-on-azure-blog/open-lightweight-service-mesh-for-k8s/ba-p/3097216) - [Service Mesh in Kubernetes - Getting Started](https://www.programmingwithwolfgang.com/service-mesh-kubernetes-getting-started/) - [How eBPF will solve Service Mesh – Goodbye Sidecars](https://isovalent.com/blog/post/2021-12-08-ebpf-servicemesh/) - [Microservice Service Discovery: API Gateway or Service Mesh?](https://www.getambassador.io/blog/microservices-discovery-api-gateway-vs-service-mesh) - [Service mesh vs. API gateway](https://www.solo.io/topics/service-mesh/service-mesh-vs-api-gateway/) - [Do I Need an API Gateway if I Use a Service Mesh?](https://blog.christianposta.com/microservices/do-i-need-an-api-gateway-if-i-have-a-service-mesh/) - [Service Mesh vs API Gateway](https://medium.com/microservices-in-practice/service-mesh-vs-api-gateway-a6d814b9bf56) - [Service Mesh for Microservices](https://medium.com/microservices-in-practice/service-mesh-for-microservices-2953109a3c9a) ## Courses - [Introduction to Service Mesh with Linkerd](https://training.linuxfoundation.org/training/introduction-to-service-mesh-with-linkerd-lfs143/) ## 📺 Videos - [How to get a grip on your microservices using a service mesh](https://www.youtube.com/watch?v=YJZGh53-on8) - [API Gateway to Service Mesh: Navigating a Changing Landscape - Zhamak Dehghani](https://www.youtube.com/watch?v=QYdOJ0QJptE) ================================================ FILE: docs/service-oriented-architecture.md ================================================ # Service Oriented Architecture ## 📕 Articles - [Service Oriented Architecture (SOA)](https://herbertograca.com/2017/11/09/service-oriented-architecture-soa/) ## 📺 Videos - [Service-Oriented Architecture - SOA | Software/Web Application Architecture](https://www.youtube.com/watch?v=jNiEMmoTDoE&t=0s) ================================================ FILE: docs/software-architecture.md ================================================ # Software Architecture ## 📘 Resources - [Visualising Software Architecture](http://static.codingthearchitecture.com/visualising-software-architecture.pdf) - [.NET Architecture Guides](https://dotnet.microsoft.com/learn/dotnet/architecture-guides) - [Open Agile Architecture](https://pubs.opengroup.org/architecture/o-aa-standard/#_open_agile_architecture) - [mhadidg/software-architecture-books](https://github.com/mhadidg/software-architecture-books) - [Software architect roadmap](https://github.com/AlaaAttya/software-architect-roadmap) - Software architect roadmap - [How to Learn Software Design and Architecture | The Full-stack Software Design & Architecture Map](https://khalilstemmler.com/articles/software-design-architecture/full-stack-software-design/) - [simskij/awesome-software-architecture](https://github.com/simskij/awesome-software-architecture) - A curated list of resources on software architecture - [Developer-Y/Scalable-Software-Architecture](https://github.com/Developer-Y/Scalable-Software-Architecture) - Collection of tech talks, papers and web links on Distributed Systems, Scalability and System Design. - [binhnguyennus/awesome-scalability](https://github.com/binhnguyennus/awesome-scalability) - The Patterns of Scalable, Reliable, and Performant Large-Scale Systems - [joebew42/study-path](https://github.com/joebew42/study-path) - An organized learning path about Clean Code, Test-Driven Development, Legacy Code, Refactoring, Domain-Driven Design and Microservice Architecture - [unlight/solution-architecture](https://github.com/unlight/solution-architecture) - Solution Architecture links, articles, books, video lessons, etc. - [chanakaudaya/solution-architecture-patterns](https://github.com/chanakaudaya/solution-architecture-patterns) - Reusable, vendor-neutral, industry-specific, vendor-specific solution architecture patterns for enterprise - [Software Architect Roadmap](https://roadmap.sh/software-architect) - Complete guide to become a Software Architect. ## 🎬 Youtube Channels - [CodeOpinion](https://www.youtube.com/channel/UC3RKA4vunFAfrfxiJhPEplw) - [Martin Kleppmann](https://www.youtube.com/channel/UClB4KPy5LkJj1t3SgYVtMOQ/videos) - [Mark Richards](https://www.youtube.com/channel/UC-Z7T0lAq_xECevIz8E5R5w) ## 📕 Articles - [The Software Architecture Chronicles](https://herbertograca.com/2017/07/03/the-software-architecture-chronicles/) - [Software Architecture Premises](https://herbertograca.com/2017/07/05/software-architecture-premises/) - [DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together](https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/) - [Reflecting architecture and domain in code](https://herbertograca.com/2019/06/05/reflecting-architecture-and-domain-in-code/) - [More than concentric layers](https://herbertograca.com/2018/07/07/more-than-concentric-layers/) - [Documenting Software Architecture](https://herbertograca.com/2019/08/12/documenting-software-architecture/) - [Architectural Styles vs. Architectural Patterns vs. Design Patterns](https://herbertograca.com/2017/07/28/architectural-styles-vs-architectural-patterns-vs-design-patterns/) - [Package by component and architecturally-aligned testing](http://www.codingthearchitecture.com/2015/03/08/package_by_component_and_architecturally_aligned_testing.html) - [Schools of Package Architecture - An Illustration](http://codemanship.co.uk/parlezuml/blog/?postid=539) - [Modularity and testability](http://www.codingthearchitecture.com/2014/10/01/modularity_and_testability.html) - [Software architecture vs code](http://www.codingthearchitecture.com/2014/05/29/software_architecture_vs_code.html) - [An architecturally-evident coding style](http://www.codingthearchitecture.com/2014/06/01/an_architecturally_evident_coding_style.html) - [Mapping software architecture to code](http://www.codingthearchitecture.com/2013/04/08/mapping_software_architecture_to_code.html) - [Components vs classes](http://www.codingthearchitecture.com/2015/03/31/components_vs_classes.html) - [Simple Sketches for Diagramming your Software Architecture](http://www.methodsandtools.com/archive/softwarearchitecturesketches.php) - [Architectural Patterns and Styles]() - [Monolithic Architecture](https://herbertograca.com/2017/07/31/monolithic-architecture/) - [techtribes.je - context](http://www.codingthearchitecture.com/2013/07/09/techtribes_je_context.html) - [Aligning software architecture and code](http://www.codingthearchitecture.com/2013/07/03/aligning_software_architecture_and_code.html) - [Component Based Architecture](https://medium.com/omarelgabrys-blog/component-based-architecture-3c3c23c7e348) - [Layers, hexagons, features and components](https://www.codingthearchitecture.com/2016/04/25/layers_hexagons_features_and_components.html) - [PresentationDomainDataLayering](https://martinfowler.com/bliki/PresentationDomainDataLayering.html) - [Architectural Drivers: Building Blocks for Decision Making](https://www.neverletdown.net/2014/10/architectural-drivers.html) ## 📺 Videos - [DevTernity 2016: Simon Brown - The Art of Visualising Software Architecture](https://www.youtube.com/watch?v=zcmU-OE452k) - [GOTO 2018 • Modular Monoliths • Simon Brown](http://w7.mul.ir/yo%7cut%7cub%7ce.%7cco%7cm/watch?v=5OjqD-ow8GE&feature=emb_title&ab_channel=GOTOConferences) - [GOTO 2014 • Software Architecture vs. Code • Simon Brown](http://w7.mul.ir/yo%7cut%7cub%7ce.%7cco%7cm/watch?v=GAFZcYlO5S0) - [Modular monoliths (Simon Brown) - 2016](http://w7.mul.ir/yo%7cut%7cub%7ce.%7cco%7cm/watch?v=h_rBDIC51C4) - [Modular monoliths by Simon Brown](http://w7.mul.ir/yo%7cut%7cub%7ce.%7cco%7cm/watch?v=kbKxmEeuvc4) - [Software architecture and code](https://skillsmatter.com/skillscasts/4312-software-architecture-and-code) - [Munich .NET Meetup: Modular Monolith Architecture - One to rule them all](https://www.youtube.com/watch?v=njDSXUWeik0) - [Majestic Modular Monoliths by Axel Fontaine](https://www.youtube.com/watch?v=BOvxJaklcr0) - [GOTO 2020 • Five Things Every Developer Should Know about Software Architecture • Simon Brown](https://www.youtube.com/watch?v=9Az0q2XHtH8) - [How to build software architecture diagrams](https://www.youtube.com/watch?v=_I0U1sZ9RJ8) - [Visualising software architecture with the C4 model - Simon Brown, Agile on the Beach 2019](https://www.youtube.com/watch?v=x2-rSnhpw0g) - [Structurizr C4 Model series](https://www.youtube.com/playlist?list=PLLET0MJVt0Uc0Nek7yck8FG2fNnv9H32v) - [Software Architecture vs Code](https://www.youtube.com/watch?v=ehH3UGdSwPo) - [GOTO 2021 • Software Architecture for Developers Part 2/2 • Simon Brown & Stefan Tilkov](https://www.youtube.com/watch?v=gDlE4q3mozY) ## 📚 Books - [Microsoft Application Architecture Guide, 2nd Edition]() - [Patterns of Enterprise Application Architecture, Martin Fowler](https://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420) - [Building Evolutionary Architectures: Support Constant Change](https://www.amazon.com/Building-Evolutionary-Architectures-Support-Constant/dp/1491986360) - [Fundamentals of Software Architecture: An Engineering Approach](https://www.amazon.com/Fundamentals-Software-Architecture-Comprehensive-Characteristics/dp/1492043451) - [Software Architecture in Practice (SEI Series in Software Engineering) 4th Edition](https://www.amazon.com/Software-Architecture-Practice-SEI-Engineering/dp/0136886094) - [Continuous Architecture in Practice: Software Architecture in the Age of Agility and DevOps (Addison-Wesley Signature Series (Vernon)) 1st Edition](https://www.amazon.com/Continuous-Architecture-Practice-Addison-Wesley-Signature/dp/0136523560/ref=pd_sbs_7/142-1174349-9952515) - [Architecting for Scale: How to Maintain High Availability and Manage Risk in the Cloud 2nd Edition](https://www.amazon.com/Architecting-Scale-Maintain-Availability-Manage/dp/1492057177/) - [Software Architecture for Developers: Volumes 1 & 2 - Technical leadership and communication](https://leanpub.com/b/software-architecture) - [Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives 2nd Edition](https://www.amazon.com/Software-Systems-Architecture-Stakeholders-Perspectives-dp-032171833X/dp/032171833X) - [Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/) - [Just Enough Software Architecture: A Risk-Driven Approach](https://www.amazon.com/Just-Enough-Software-Architecture-Risk-Driven/dp/0984618104/) - [Design It!: From Programmer to Software Architect (The Pragmatic Programmers)](https://www.amazon.com/Design-Programmer-Architect-Pragmatic-Programmers/dp/1680502093) - [The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition) 2nd Edition](https://www.amazon.com/Pragmatic-Programmer-journey-mastery-Anniversary/dp/0135957052/) - [Software Architect's Handbook: Become a successful software architect by implementing effective architecture concepts](https://www.amazon.com/Software-Architects-Handbook-implementing-architecture/dp/1788624068/) - [Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures](https://www.amazon.com/Software-Architecture-Trade-Off-Distributed-Architectures/dp/1492086894/) - [The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise](https://www.amazon.com/Software-Architect-Elevator-Redefining-Architects/dp/1492077542) - [Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions](https://www.amazon.com/Enterprise-Integration-Patterns-Designing-Deploying/dp/0321200683/) - [Documenting Software Architectures: Views and Beyond 2nd Edition](https://www.amazon.com/Documenting-Software-Architectures-Views-Beyond/dp/0321552687) - [Solution Architecture with .NET: Learn solution architecture principles and design techniques to build modern .NET solutions](https://www.amazon.com/Solution-Architecture-NET-architecture-principles/dp/180107562X) - [Software Architecture with C# 9 and .NET 5: Architecting software solutions using microservices, DevOps, and design patterns for Azure, 2nd Edition](https://www.amazon.com/Software-Architecture-NET-Architecting-microservices/dp/1800566042) - [Software Architecture with C# 10 and .NET 6: Develop software solutions using microservices, DevOps, EF Core, and design patterns for Azure, 3rd Edition](https://www.amazon.co.uk/Software-Architecture-NET-solutions-microservices-dp-180323525X/dp/180323525X) - [Software Architecture with Spring 5.0: Design and architect highly scalable, robust, and high-performance Java applications](https://www.amazon.com/Software-Architecture-Spring-5-0-high-performance/dp/1788992997) - [Hands-On Software Architecture with Golang: Design and architect highly scalable and robust applications using Go ](https://www.amazon.com/Hands-Software-Architecture-Golang-applications-ebook/dp/B079X2RGKQ) - [Designing Software Architectures: A Practical Approach (SEI Series in Software Engineering)](https://www.amazon.com/Designing-Software-Architectures-Practical-Engineering/dp/0134390784) - [Cloud Native Architecture and Design: A Handbook for Modern Day Architecture and Design with Enterprise-Grade Examples](https://www.amazon.com/Cloud-Native-Architecture-Design-Enterprise-Grade-ebook/dp/B09HMCNZWH) - [Software Architect’s Handbook: Become a successful software architect by implementing effective architecture concepts](https://www.amazon.com/Software-Architects-Handbook-implementing-architecture-ebook/dp/B07B3R2ZCX/) - [Architectural Patterns: Uncover essential patterns in the most indispensable realm of enterprise architecture](https://www.amazon.com/Architectural-Patterns-indispensable-enterprise-architecture-ebook/dp/B077T7V8RC) - [Software Architecture by Example: Using C# and .NET](https://www.amazon.com/Software-Architecture-Example-Using-NET/dp/1484279891) - [Architecture Modernization](https://www.manning.com/books/architecture-modernization) ================================================ FILE: docs/systems-design/consistent-hash.md ================================================ # Consistent Hashing ## 📕 Articles - [Everything You Need to Know About Consistent Hashing](https://newsletter.systemdesign.one/p/what-is-consistent-hashing) - [Introducing Consistent Hashing](https://itnext.io/introducing-consistent-hashing-9a289769052e) - [A Guide to Consistent Hashing](https://www.toptal.com/big-data/consistent-hashing) - [Consistent Hashing](https://medium.com/system-design-blog/consistent-hashing-b9134c8a9062) - [How we implemented consistent hashing efficiently](https://medium.com/ably-realtime/how-to-implement-consistent-hashing-efficiently-fe038d59fff2) - [How Consistent Hashing Is Used by Load Balancers to Distribute Requests](https://betterprogramming.pub/load-balancers-and-consistent-hashing-in-6-minutes-b5fc460aea4e) - [How to Use Consistent Hashing in a System Design Interview?](https://medium.com/codex/how-to-use-consistent-hashing-in-a-system-design-interview-b738be3a1ae3) - [Consistent hashing, a guide & Go library](https://medium.com/@sent0hil/consistent-hashing-a-guide-go-implementation-fe3421ac3e8f) - [Consistent Hashing: Algorithmic Tradeoffs](https://dgryski.medium.com/consistent-hashing-algorithmic-tradeoffs-ef6b8e2fcae8) - [Consistent Hashing: Beyond the basics](https://medium.com/omarelgabrys-blog/consistent-hashing-beyond-the-basics-525304a12ba) - [Consistent Hashing](https://medium.com/@sandeep4.verma/consistent-hashing-8eea3fb4a598) - [Partitioning: Introduction to partitioning](https://distributed-computing-musings.com/2022/01/partitioning-introduction-to-partitioning/) - [Partitioning: Approaches to partitioning](https://distributed-computing-musings.com/2022/01/partitioning-approaches-to-partitioning/) - [Partitioning: Consistent Hashing](https://distributed-computing-musings.com/2022/01/partitioning-consistent-hashing/) ## 📺 Videos - [Consistent Hashing - Georgia Tech - Network Congestion](https://www.youtube.com/watch?v=viaNG1zyx1g) - [Amazon Interview question: Learn hashing and consistent hash ring](https://www.youtube.com/watch?v=bBK_So1u9ew) - [What is Consistent Hashing | System Design Basics](https://www.youtube.com/watch?v=ffE1mQWxyKM) - [What is Consistent Hashing and Where is it used?](https://www.youtube.com/watch?v=zaRkONvyGr8) - [A Brief Introduction to Consistent Hashing](https://www.youtube.com/watch?v=tHEyzVbl4bg) - [Consistent Hashing Rajeev](https://www.youtube.com/watch?v=QWeO2OB40VY) - [What is Load Balancing?](https://www.youtube.com/watch?v=K0Ta65OqQkY) - [Distributed Systems in One Lesson by Tim Berglund](https://www.youtube.com/watch?v=Y6Ev8GIlbxc) ================================================ FILE: docs/systems-design/systems-design.md ================================================ # Systems Design ## 📘 Resources - [systemdesignone](https://systemdesign.one/) - [hellointerview.com](https://www.hellointerview.com) - [systemdesignclassroom.com](https://systemdesignclassroom.com/) - [grokkingthesystemdesign.com](https://grokkingthesystemdesign.com/) - [systemdesigncodex.com](https://systemdesigncodex.com/) - [systemdesign42/system-design-academy](https://github.com/systemdesign42/system-design-academy) - Newsletter to help busy software engineers become good at system design - [systemdesignschool.io](https://systemdesignschool.io/problems) - [donnemartin/system-design-primer](https://github.com/donnemartin/system-design-primer) - Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - [checkcheckzz/system-design-interview](https://github.com/checkcheckzz/system-design-interview) - System design interview for IT companies - [shashank88/system_design](https://github.com/shashank88/system_design) - Preparation links and resources for system design questions - [kilimchoi/engineering-blogs](https://github.com/kilimchoi/engineering-blogs) - A curated list of engineering blogs - [Preparing for the Systems Design and Coding Interview](https://blog.pragmaticengineer.com/preparing-for-the-systems-design-and-coding-interviews/) - [Sairyss/distributed-systems-topics](https://github.com/Sairyss/distributed-systems-topics) - This is a list of topics and resources related to distributed systems, system design, microservices, scalability and performance, etc - [bregman-arie/system-design-notebook](https://github.com/bregman-arie/system-design-notebook) - Learn System Design step by step - [InterviewReady/system-design-resources](https://github.com/InterviewReady/system-design-resources) - These are the best resources for System Design on the Internet - [karanpratapsingh/system-design](https://github.com/karanpratapsingh/system-design) - Learn how to design systems at scale and prepare for system design interviews - [coding-parrot/Low-Level-Design](https://github.com/coding-parrot/Low-Level-Design) - Useful Resources for Low Level System Design - [Coder-World04/Complete-System-Design](https://github.com/Coder-World04/Complete-System-Design) - This repository contains everything you need to become proficient in System Design - [binhnguyennus/awesome-scalability](https://github.com/binhnguyennus/awesome-scalability) - The Patterns of Scalable, Reliable, and Performant Large-Scale Systems - [cheatsnake/backend-cheats](https://github.com/cheatsnake/backend-cheats) - Homepage for Backend developers - [ByteByteGoHq/system-design-101](https://github.com/ByteByteGoHq/system-design-101) - Explain complex systems using visuals and simple terms. Help you prepare for system design interviews - [CodingChallenges WebSite](https://codingchallenges.fyi/challenges/intro) - [IGotAnOffer-Engineering Youtube Channel](https://www.youtube.com/@IGotAnOffer-Engineering) - [ashishps1/awesome-system-design-resources](https://github.com/ashishps1/awesome-system-design-resources) - Learn System Design concepts and prepare for interviews using free resources - [codeKarle](https://www.youtube.com/channel/UCZEfiXy7PmtVTezYUvc4zZw) ## Courses - [Grokking Modern System Design Interview for Engineers & Managers](https://www.educative.io/courses/grokking-modern-system-design-interview-for-engineers-managers) ## 📕 Articles - [System Design: Slack](https://newsletter.systemdesign.one/p/messaging-architecture) - [System Design: Wechat](https://newsletter.systemdesign.one/p/chat-application-architecture) - [System Design: Live Comments](https://systemdesign.one/live-comment-system-design/) - [System Design: Leaderboard](https://systemdesign.one/leaderboard-system-design/) - [System Design: Pastebin](https://systemdesign.one/system-design-pastebin/) - [System Design: Distributed Counter](https://systemdesign.one/distributed-counter-system-design/) - [System Design: System Design Interviews](https://dev.to/karanpratapsingh/system-design-system-design-interviews-47ak) - [Scalable Web Architecture and Distributed Systems](http://www.aosabook.org/en/distsys.html) - [YouTube Architecture](http://highscalability.com/youtube-architecture) - [System Design: WhatsApp](https://interviewdaemon.medium.com/system-design-whatsapp-788705bd4fb0) - [System Design: Netflix](https://dev.to/karanpratapsingh/system-design-netflix-3d9g) - [System Design: Twitter](https://dev.to/karanpratapsingh/system-design-twitter-865) - [System Design: Uber](https://dev.to/karanpratapsingh/system-design-uber-56b1) - [System Design: WhatsApp](https://dev.to/karanpratapsingh/system-design-whatsapp-fld) - [System Design: URL Shortener](https://dev.to/karanpratapsingh/system-design-url-shortener-10i5) - [Understanding System Design of Netflix: Backend Architecture and Cloud Services](https://medium.com/@nidhiupreti99/understanding-system-design-of-netflix-backend-architecture-and-cloud-services-b077162e45bc) - [Netflix System Design- Backend Architecture](https://dev.to/gbengelebs/netflix-system-design-backend-architecture-10i3) - [How Uber Serves Over 40 Million Reads Per Second from Online Storage Using an Integrated Cache](https://www.uber.com/en-IN/blog/how-uber-serves-over-40-million-reads-per-second-using-an-integrated-cache/) - [How Uber Computes ETA at Half a Million Requests per Second](https://newsletter.systemdesign.one/p/uber-eta) - [How Instagram scaled to 14 million users with only 3 engineers](https://read.engineerscodex.com/p/how-instagram-scaled-to-14-million) - [How Uber Finds Nearby Drivers at 1 Million Requests per Second](https://newsletter.systemdesign.one/p/how-does-uber-find-nearby-drivers) - [System Design: How to Scale a Database](https://blog.algomaster.io/p/system-design-how-to-scale-a-database) - [Database Scaling](https://www.mongodb.com/resources/basics/scaling) - [How Discord Stores Trillions of Messages](https://discord.com/blog/how-discord-stores-trillions-of-messages) - [Sharding & IDs at Instagram](https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c) - [Thundering Herds & Promises](https://instagram-engineering.com/thundering-herds-promises-82191c8af57d) ## 📺 Videos - [Distributed Computing](https://www.youtube.com/watch?v=ajjOEltiZm4) - [Basics of System Design Playlist - Coding Simplified](https://www.youtube.com/playlist?list=PLt4nG7RVVk1g_LutiJ8_LvE914rIE5z4u) - [System Design](https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX) - [Basics of System Design](https://www.youtube.com/playlist?list=PLt4nG7RVVk1g_LutiJ8_LvE914rIE5z4u) - [System Design Primer Course](https://www.youtube.com/playlist?list=PLTCrU9sGyburBw9wNOHebv9SjlE4Elv5a) - [System Design And Interview](https://www.youtube.com/c/interviewingio/videos) - [System Design](https://www.youtube.com/playlist?list=PLkQkbY7JNJuBoTemzQfjym0sqbOHt5fnV) - [Coding and System Design Interview Questions](https://www.youtube.com/playlist?list=PLA8lYuzFlBqAy6dkZHj5VxUAaqr4vwrka) - [Grokking the System Design Interview](https://www.youtube.com/playlist?list=PL73KFetZlkJSZ9vTDSJ1swZhe6CIYkqTL) - [System Design](https://www.youtube.com/playlist?list=PLhgw50vUymyckXl3D1IlXoVl94wknJfUC) - [System Design Interview](https://www.youtube.com/channel/UC9vLsnF6QPYuH51njmIooCQ) - [System Design Interview Course - tryexponent](https://www.tryexponent.com/courses/system-design-interview) - [Distributed Systems lecture series - Martin Kleppmann](https://www.youtube.com/playlist?list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB) - [Real-Time Delivery Architecture at Twitter](https://www.youtube.com/watch?v=J5auCY4ajK8) - [Google system design interview: Design Spotify (with ex-Google EM)](https://www.youtube.com/watch?v=_K-eupuDVEc) - [Basic System Design for Uber or Lyft | System Design Interview Prep](https://www.youtube.com/watch?v=R_agd5qZ26Y) - [Design Twitter - System Design Interview](https://www.youtube.com/watch?v=o5n85GRKuzk) ## 📚 Books - [Software Engineering at Google](https://www.oreilly.com/library/view/software-engineering-at/9781492082781/) - [System Design Interview – An insider's guide, Second Edition](https://www.amazon.com/dp/B08CMF2CQF/ref=tsm_1_fb_lk) - [Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321) - [Cracking the Coding Interview: 189 Programming Questions and Solutions 6th Edition](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/) ================================================ FILE: docs/type-driven-design.md ================================================ # Type Driven Design ## 📕 Articles - [Type Driven Development by Mark Seemann](https://blog.ploeh.dk/2015/08/10/type-driven-development/) - [Type-Driven Design, Test-Driven Design](https://thoughtbot.com/blog/nuanced-tdd) ================================================ FILE: docs/vertical-slice-architecture.md ================================================ # Vertical Slice Architecture ## 📕 Articles - [Vertical Slice Architecture](https://jimmybogard.com/vertical-slice-architecture/) ⭐ - [Package by component and architecturally-aligned testing](https://dzone.com/articles/package-component-and) - [An architecturally-evident coding style](https://dzone.com/articles/architecturally-evident-coding) - [Exploring vertical slices in dotnet core](https://dev.to/htech/exploring-vertical-slices-in-dotnet-core-3mik) - [Package by Component with Clean Modules in Java](https://blog.ttulka.com/package-by-component-with-clean-modules-in-java) - [Architecting for maintainability through Vertical Slices ](https://www.ghyston.com/insights/architecting-for-maintainability-through-vertical-slices/) ⭐ - [The Tyranny of Horizontal Architectures (and How You Might Escape): Part 2](https://www.ojdevelops.com/2018/07/the-tyranny-of-horizontal-architectures2.html) - [Organizing Code by Feature using Vertical Slices](https://codeopinion.com/organizing-code-by-feature-using-vertical-slices/) ⭐ - [Coding: Packaging by vertical slice](https://markhneedham.com/blog/2012/02/20/coding-packaging-by-vertical-slice/) - [FEATURE FOLDERS IN ASP.NET MVC](https://timgthomas.com/2013/10/feature-folders-in-asp-net-mvc/) - [Vertical Slice Example Updated to .NET 5](https://jimmybogard.com/vertical-slice-example-updated-to-net-5/) ⭐ - [Feature Folders](http://www.kamilgrzybek.com/design/feature-folders/) ⭐ - [Put your controllers on a diet: GETs and queries](https://lostechies.com/jimmybogard/2013/10/29/put-your-controllers-on-a-diet-gets-and-queries/) - [Put your controllers on a diet: POSTs and commands](https://lostechies.com/jimmybogard/2013/12/19/put-your-controllers-on-a-diet-posts-and-commands/) - [The life-changing (and time-saving!) magic of Feature Focused code organisation.](https://builtwithdot.net/blog/changing-how-your-code-is-organized-could-speed-development-from-weeks-to-days) - [Migrating Contoso University Example to Razor Pages](https://jimmybogard.com/migrating-contoso-university-example-to-razor-pages/) - [API Feature Folders](https://ardalis.com/api-feature-folders/) - [Feature Slices for ASP.NET Core MVC](https://docs.microsoft.com/en-us/archive/msdn-magazine/2016/september/asp-net-core-feature-slices-for-asp-net-core-mvc) - [Simpler ASP.NET MVC Apps with Razor Pages](https://docs.microsoft.com/en-us/archive/msdn-magazine/2017/september/asp-net-core-simpler-asp-net-mvc-apps-with-razor-pages) - [Moving from Controllers and Actions to Endpoints with MediatR](https://ardalis.com/moving-from-controllers-and-actions-to-endpoints-with-mediatr/) - [MVC Controllers are Dinosaurs - Embrace API Endpoints](https://ardalis.com/mvc-controllers-are-dinosaurs-embrace-api-endpoints/) - [Out with the Onion, in with Vertical Slices](https://medium.com/@jacobcunningham/out-with-the-onion-in-with-vertical-slices-c3edfdafe118) - [No Abstractions in Vertical Slice Architecture?](https://www.reddit.com/r/dotnet/comments/m1t6g3/no_abstractions_in_vertical_slice_architecture/) - [Encountering "Vertical Slice Architecture"... Is it incompatible with Clean Architecture?](https://jeremiahflaga.github.io/2019/05/20/vertical-slice-architecture-is-it-incompatible-with-clean-architecture/) - [Vertical Slices](https://deviq.com/practices/vertical-slices) - [What Are Your Thoughts On The Vertical Slice Architecture?](https://www.reddit.com/r/dotnet/comments/gej15i/what_are_your_thoughts_on_the_vertical_slice/) - [Why I Recommend a Feature-Driven Approach to Software Design](https://khalilstemmler.com/articles/software-design-architecture/feature-driven/) - [Composite UIs for Microservices: Vertical Slice APIs](https://jimmybogard.com/composite-uis-for-microservices-vertical-slice-apis/) - [How to slice the codebase effectively?](https://event-driven.io/en/how_to_slice_the_codebase_effectively/) ⭐ - [Fat Controller CQRS Diet: Vertical Slices](https://codeopinion.com/fat-controller-cqrs-diet-vertical-slices/) - [CQRS facts and myths explained](https://event-driven.io/en/cqrs_facts_and_myths_explained/) - [Slices vs. Layers](https://www.betterask.erni/news-room/slices-vs-layers/) - [Modular Monolith: A Primer](http://www.kamilgrzybek.com/design/modular-monolith-primer/) - [Choosing Between using Clean/Onion or Vertical Slice Architecture for Enterprise Apps in .NET](https://www.reddit.com/r/dotnet/comments/lw13r2/choosing_between_using_cleanonion_or_vertical/) - [Clean Architecture Example & Breakdown](https://codeopinion.com/clean-architecture-example-breakdown/) - [Vertical Slice testing done right: a tutorial](https://headspring.com/2020/09/02/testing-done-right-with-vertical-slice-architecture/) - [Restructuring to a Vertical Slice Architecture](https://codeopinion.com/restructuring-to-a-vertical-slice-architecture/) ⭐ - [Avoiding Premature Software Abstractions](https://betterprogramming.pub/avoiding-premature-software-abstractions-8ba2e990930a) - [CQRS is simpler than you think with .NET 6 and C# 10](https://event-driven.io/en/cqrs_is_simpler_than_you_think_with_net6/) ⭐ - [Building REST APIs In .Net 6 The Easy Way!](https://dev.to/djnitehawk/building-rest-apis-in-net-6-the-easy-way-3h0d) - [Organize by Feature](https://codeopinion.com/organize-by-feature/) ⭐ - [Why I don’t like layered architecture for microservices](https://garywoodfine.com/why-i-dont-like-layered-architecture-for-microservices/) - [How to Implement Vertical Slice Architecture](https://garywoodfine.com/implementing-vertical-slice-architecture/) - [Maybe it's time to rethink our project structure with .NET 6](https://timdeschryver.dev/blog/maybe-its-time-to-rethink-our-project-structure-with-dot-net-6) - [The simplicity of ASP.NET Endpoints](https://timdeschryver.dev/blog/the-simplicity-of-net-endpoints) - [Vertical Slice Architecture in ASP.NET Core](https://code-maze.com/vertical-slice-architecture-aspnet-core/) - [How To Structure Your .NET Solutions: Architecture And Trade-Offs](https://www.jamesmichaelhickey.com/how-to-structure-your-dot-net-solutions-design-and-trade-offs/) - [Vertical Software Development](https://medium.com/ssense-tech/vertical-software-development-495b73f7fcdf) - [Vertical Slices in practice](https://event-driven.io/en/-vertical_slices_in_practice/) ⭐ - [Low Ceremony Vertical Slice Architecture with Wolverine](https://jeremydmiller.com/2023/07/10/low-ceremony-vertical-slice-architecture-with-wolverine/) - [Compiled Queries with Marten](https://jeremydmiller.com/2023/07/12/compiled-queries-with-marten/) - [Vertical Slice Architecture in ASP.NET Core](https://blog.ndepend.com/vertical-slice-architecture-in-asp-net-core/) ⭐ - [There is no template for vertical slicing](https://www.dateo-software.de/blog/no-vertical-slicing-template) - [My thoughts on Vertical Slices, CQRS, Semantic Diffusion and other fancy words](https://www.architecture-weekly.com/p/my-thoughts-on-vertical-slices-cqrs) ⭐ ## 📺 Videos - [SOLID Architecture in Slices not Layers - Jimmy Bogard](https://vimeo.com/131633177) - [Vertical Slice Architecture - Jimmy Bogard](https://www.youtube.com/watch?v=5kOzZz2vj2o) - [SOLID Architecture in Slices not Layers](https://www.youtube.com/watch?v=wTd-VcJCs_M) - [DevTernity 2019: Jimmy Bogard – Vertical Slice Architecture](https://www.youtube.com/watch?v=T6nglsEDaqA) - [Vertical Slice Architecture - Jimmy Bogard](https://www.youtube.com/watch?v=SUiWfhAhgQw&lc=UgzDmpq_2SHwmuSgIL54AaABAg) - [Blazor Server Vertical Slice Architecture](https://www.youtube.com/watch?v=WLNEeO5cMaw) - [Restructuring to a Vertical Slice Architecture](https://www.youtube.com/watch?v=cVVMbuKmNes) - [Organize Code by Feature | Vertical Slices](https://www.youtube.com/watch?v=PRns0rqPonA) - [Vertical Slice Architecture](https://www.youtube.com/watch?v=id2kfgzONMA) - [Clean Architecture Example & Breakdown - Do I use it?](https://www.youtube.com/watch?v=Ys_W6MyWOCw) - [Tired of Layers? Vertical Slice Architecture to the rescue!](https://www.youtube.com/watch?v=lsddiYwWaOQ) - [Vertical Slice Architecture, not Layers!](https://www.youtube.com/watch?v=L2Wnq0ChAIA) ⭐ - [A Contrarian View of Software Architecture - Jeremy Miller - NDC Oslo 2023](https://www.youtube.com/watch?v=ttYQzHPe5s4) - [Battle Of The Software Architectures: Which One Reigns Supreme?](https://www.youtube.com/watch?v=VbuJaH7mKIc) - [Vertical Slice Architecture Myths You Need To Know!](https://www.youtube.com/watch?v=TfMArQnepco) - [Vertical Slice Architecture (Jimmy Bogard)](https://www.youtube.com/watch?v=oAoaMlS1PWo) ## 🚀 Samples - [jbogard/ContosoUniversityDotNetCore-Pages](https://github.com/jbogard/ContosoUniversityDotNetCore-Pages) - [oskardudycz/EventSourcing.NetCore/Sample/Warehouse](https://github.com/oskardudycz/EventSourcing.NetCore/tree/cqrs_with_net5/Sample/Warehouse) - [sandeepgangwar/Vertical-Slice-Architecture](https://github.com/sandeepgangwar/Vertical-Slice-Architecture) - [dj-nitehawk/MongoWebApiStarter](https://github.com/dj-nitehawk/MongoWebApiStarter) - A full-featured starter template for `dotnet new` to quickly scaffold a .Net 6 Web-Api project with MongoDB as the data store. - [baratgabor/MyWarehouse](https://github.com/baratgabor/MyWarehouse) - Clean Architecture and Domain Driven Design sample project based on C# 9 / .NET 5 / ASP.NET Core 5 / EF Core 5 & Angular 11 with Bootstrap. - [gothinkster/aspnetcore-realworld-example-app](https://github.com/gothinkster/aspnetcore-realworld-example-app) - ASP.NET Core backend implementation for RealWorld - [dcomartin/MusicStore](https://github.com/dcomartin/MusicStore) - [ardalis/OrganizingAspNetCore](https://github.com/ardalis/OrganizingAspNetCore) - [dotnet-architecture/eShopOnWeb](https://github.com/dotnet-architecture/eShopOnWeb) - [ardalis/ApiEndpoints/tree/master/sample](https://github.com/ardalis/ApiEndpoints/tree/master/sample) - [PacktPublishing/ASP.NET-Core-5-Design-Patterns](https://github.com/PacktPublishing/ASP.NET-Core-5-Design-Patterns/tree/main/C15/Vertical%20Slice%20Architecture) - [isaacOjeda/MinimalApiArchitecture](https://github.com/isaacOjeda/MinimalApiArchitecture) ⭐ - .NET 6 Minimal API with Vertical Slice Architecture - [NikiforovAll/minimal-api-example](https://github.com/NikiforovAll/minimal-api-example) - Original blog post: https://nikiforovall.github.io/dotnet/aspnetcore/2021/09/10/opinionated-minimal-api.html - [dj-nitehawk/MiniDevTo](https://github.com/dj-nitehawk/MiniDevTo) - The source code of the Dev.To article [Building REST APIs In .Net 6 The Easy Way!](https://dev.to/djnitehawk/building-rest-apis-in-net-6-the-easy-way-3h0d) - [pdevito3/craftsman](https://github.com/pdevito3/craftsman) - A .NET 6 scaffolding tool to help you stop worrying about boilerplate and focus on your business logic - [oskardudycz/EventSourcing.NetCore/Sample/ECommerce](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/ECommerce) ⭐ - [oskardudycz/EventSourcing.NetCore/MeetingsManagement](https://github.com/oskardudycz/EventSourcing.NetCore/tree/main/Sample/MeetingsManagement) - [oskardudycz/EventSourcing.JVM](https://github.com/oskardudycz/EventSourcing.JVM) - Examples and Tutorials of Event Sourcing in JVM languages - [Hona/VerticalSliceArchitecture](https://github.com/Hona/VerticalSliceArchitecture) - A small but opinionated Vertical Slice Architecture solution template for .NET 8 - [baranacikgoz/modular-monolith-ddd-vsa-webapi](https://github.com/baranacikgoz/modular-monolith-ddd-vsa-webapi) - A .NET 8 Webapi boilerplate with Modular Monolith approach, Domain-Driven Design and Vertical Slices architecture along with Clean Architecture principles per feature ================================================ FILE: mkdocs.yml ================================================ site_name: Awesome Software Architecture site_url: https://awesome-architecture.com site_description: Curated list of awesome articles and resources to learn and practice about software architecture, patterns and principles. docs_dir: repo_name: mehdihadeli/awesome-software-architecture repo_url: https://github.com/mehdihadeli/awesome-software-architecture edit_uri: edit/main/docs/ theme: name: material #https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/ features: - navigation.instant - navigation.tracking - toc.integrate - navigation.top palette: - media: "(prefers-color-scheme: light)" scheme: default toggle: icon: material/toggle-switch-off-outline name: Switch to dark mode - media: "(prefers-color-scheme: dark)" scheme: slate toggle: icon: material/toggle-switch name: Switch to light mode prev_next_buttons_location: both navigation_depth: 4 titles_only: False sticky_navigation: True markdown_extensions: - smarty - sane_lists - fenced_code - meta - admonition - attr_list - pymdownx.arithmatex - pymdownx.betterem: smart_enable: all - pymdownx.caret - pymdownx.critic - pymdownx.details - pymdownx.inlinehilite - pymdownx.magiclink - pymdownx.mark - pymdownx.smartsymbols - pymdownx.superfences - pymdownx.tasklist: custom_checkbox: true - pymdownx.tabbed - pymdownx.tilde - codehilite - footnotes - toc: permalink: true nav: - Abstraction: abstraction.md - Actor Model Architecture: - Actor Model Architecture: actor-model-architecture/actor-model-architecture.md - Akka .NET: actor-model-architecture/akka-net.md - Orleans: actor-model-architecture/orleans.md - Protoactor: actor-model-architecture/protoactor.md - Architecture Documententation: architecture-documententation.md - AI: A2A: ai/a2a.md AI: ai/ai.md Agents: ai/agent.md Microsoft Agent Framework: ai/agent-framework.md Embedding & Vector: ai/embedding-vector.md Code Assistants: ai/code-assistants.md LangChain: ai/langchain.md Model Context Protocol (MCP): ai/mcp.md Models: - Models: ai/models.md - Hugging Face: ai/models/hugging-face.md - Ollama: ai/models/ollama.md - OpenAI: ai/models/openai.md - Phi: ai/models/phi.md Prompt Engineering: ai/prompt-engineering.md RAG: ai/rag.md Semantic Kernel & .NET AI: ai/semantic-kernel.md - Algorithms: algorithm.md - Anti Patterns: - Anti Patterns: anti-patterns/anti-patterns.md - Big Ball of Mud: anti-patterns/big-ball-of-mud.md - Code Smells: anti-patterns/code-smells.md - God Object: anti-patterns/god-object.md - Partial/Optional Object: anti-patterns/partial-object.md - Static Cling: anti-patterns/static-cling.md - Architectural Design Principles: - Architectural Design Principles: architectural-design-principles/architectural-design-principles.md - CAP Theorem: architectural-design-principles/cap.md - Cohesion: architectural-design-principles/cohesion.md - Command Query Separation - CQS: architectural-design-principles/cqs.md - Coupling: architectural-design-principles/coupling.md - Crosscutting Concerns: architectural-design-principles/crosscutting-concerns.md - Dependency Inversion: architectural-design-principles/dependency-inversion.md - Donot Repeat Yourself - DRY: architectural-design-principles/dry.md - Encapsulation: architectural-design-principles/encapsulation.md - Fail-Fast: architectural-design-principles/fail-fast.md - Favor Composition over Inheritance: architectural-design-principles/favor-composition-over-inheritance.md - GRASP: architectural-design-principles/grasp.md - Interface Segregation: architectural-design-principles/interface-segregation.md - Inversion of Control: architectural-design-principles/inversion-control.md - Keep It Simple - KISS: architectural-design-principles/kiss.md - Open/Closed Principle: architectural-design-principles/open-closed-principle.md - Persistence Ignorance: architectural-design-principles/persistence-ignorance.md - Single Responsibility: architectural-design-principles/single-responsibility.md - SOLID: architectural-design-principles/solid.md - YAGNI: architectural-design-principles/yagni.md - Azure Cloud: - Azure API Management: azure/azure-api-management.md - Azure App Configuration: azure/azure-configuration.md - Azure App Service: azure/azure-app-service.md - Azure App Service Plan: azure/azure-app-service-plan.md - Azure Cloud: azure/azure-cloud.md - Azure Functions / Azure Serverless: azure/azure-functions.md - Azure Kubernetes Service (AKS): azure/aks.md - Azure Load Balancing: azure/azure-load-balancing.md - Azure Logic App: azure/azure-logic-app.md - Azure Messaging: - Azure Messaging: azure/messaging/messaging.md - Azure Event Grid: azure/messaging/azure-event-grid.md - Azure Event Hub: azure/messaging/azure-event-hub.md - Azure Queue: azure/messaging/azure-queue.md - Azure Service Bus: azure/messaging/azure-service-bus.md - Azure Web Pub/Sub: azure/messaging/azure-web-pub-sub.md - Azure NoSQL: - Azure CosmosDB: azure/nosql/cosmosdb.md - Azure NoSQL: azure/nosql/azure-nosql.md - Azure Resource & Resource Group: azure/azure-resource.md - Azure Resource Manager (ARM): azure/azure-resource-manager.md - Azure Sequrity: - Azure Active Directory (Azure AD): azure/azure-active-directory.md - Azure Key Vault: azure/azure-key-vault.md - Azure SQL: azure/azure-sql.md - Azure Storage: - Azure Storage: azure/storage/storage.md - Azure Blob: azure/storage/blob.md - Azure Queue: azure/storage/queue.md - Azure Table: azure/storage/table.md - Azure File: azure/storage/file.md - Azure Template: azure/azure-template.md - Back Pressure: back-pressure.md - Caching: caching.md - Clean Architecture: clean-architecture.md - Clean Code: clean-code.md - Cloud Best Practices: cloud-best-practices.md - Cloud Design Patterns: - Ambassador Pattern: cloud-design-patterns/ambassador-pattern.md - Anti Corruption Layer Pattern: cloud-design-patterns/anti-corruption-layer-pattern.md - Backends for Frontends: cloud-design-patterns/bff.md - Bulkhead Pattern: cloud-design-patterns/bulkhead-pattern.md - Circuit Breaker Pattern: cloud-design-patterns/circuit-breaker.md - Cloud Design Patterns: cloud-design-patterns/cloud-design-patterns.md - Exactly One Delivery: cloud-design-patterns/exactly-one-delivery.md - Gateway Aggregation: cloud-design-patterns/gateway-aggregation.md - Gateway Pattern: cloud-design-patterns/gateway-pattern.md - Inbox Pattern: cloud-design-patterns/inbox-pattern.md - Outbox Pattern: cloud-design-patterns/outbox-pattern.md - Sidecar Pattern: cloud-design-patterns/sidecar.md - Strangler Fig Pattern: cloud-design-patterns/strangler-fig-pattern.md - Cloud Native: cloud-native.md - Code Review: code-review.md - Concurrency: concurrency.md - CQRS: cqrs.md - Database: - NoSQL: - CosmosDB: database/nosql/cosmosdb.md - DocumentDB: database/nosql/documentdb.md - MongoDB: database/nosql/mongodb.md - NoSQL: database/nosql/nosql.md - Relational Database: - Postgresql: database/relational/postgres.md - Relational Database: database/relational/relational-database.md - SQL: database/relational/sql.md - Replication: database/replication.md - Sharding: database/sharding.md - Data Driven Design: data-driven-design.md - Design Best Practices: - 12 Factor: design-best-practices/12-factor.md - Design Best Practices: design-best-practices/design-best-practices.md - Ids: ids.md - Thin Controllers: design-best-practices/thin-controllers.md - Design Patterns: - Adapter Pattern: design-patterns/adapter-pattern.md - Builder Pattern: design-patterns/builder.md - Chain Of Responsibility: design-patterns/chain-of-responsibility.md - Command Message Pattern: design-patterns/command-message-pattern.md - Decorator Pattern: design-patterns/decorator-pattern.md - Design Patterns: design-patterns/design-patterns.md - Factory Pattern: design-patterns/factory-pattern.md - Observer Pattern: design-patterns/observer.md - Query Object Pattern: design-patterns/query-object-pattern.md - Repository Pattern: design-patterns/repository-pattern.md - REPR: design-patterns/repr.md - Singleton: design-patterns/singleton.md - Specification Pattern: design-patterns/specification-pattern.md - State Pattern: design-patterns/state-pattern.md - Strategy Pattern: design-patterns/strategy-pattern.md - Transaction Script Pattern: design-patterns/transaction-script-pattern.md - DevOps: - CI/CD: - Azure DevOps: devops/ci-cd/azure-devops.md - Github Actions: devops/ci-cd/github-actions.md - Jenkins: devops/ci-cd/jenkins.md - Containerd: devops/containerd.md - Docker: - Docker: devops/docker/docker.md - Docker Compose: devops/docker/docker-compose.md - Kubernetes: - Kubernetes: devops/kubernetes/kubernetes.md - Debuging & Development: devops/kubernetes/debuging-development.md - Deployment Strategies: devops/kubernetes/deployment-strategies.md - Deployment Tools: - Argo-CD: devops/kubernetes/deployment-tools/argo-cd.md - Helm: devops/kubernetes/deployment-tools/helm.md - Kustomize: devops/kubernetes/deployment-tools/kustomize.md - Kubernetes Operator: devops/kubernetes/deployment-tools/kubernetes-operator.md - Jenkins: devops/kubernetes/deployment-tools/jenkins.md - Ingress Controller: - Ingress Controller: devops/kubernetes/ingress-controller.md - Nginx Ingress: devops/kubernetes/nginx-ingress.md - Traefik Ingress: devops/kubernetes/traefik-ingress.md - Other Tools: - Garden: devops/kubernetes/other-tools/garden.md - K3s: devops/kubernetes/other-tools/k3s.md - Mirrord: devops/kubernetes/other-tools/mirrord.md - Okteto: devops/kubernetes/other-tools/okteto.md - Skaffold: devops/kubernetes/other-tools/skaffold.md - Telepresence: devops/kubernetes/other-tools/telepresence.md - Tilt: devops/kubernetes/other-tools/tilt.md - Terminal: - Bash: devops/terminal/bash.md - Powershell: devops/terminal/powershell.md - Distributed Locking: distributed-locking.md - Distributed Transactions & Saga: distributed-transactions.md - Domain Driven Design: - Aggregation: domain-driven-design/aggregation.md - Anemic Domain Model: domain-driven-design/anemic-domain-model.md - Application Service: domain-driven-design/application-service.md - Bounded Context: domain-driven-design/bounded-context.md - Domain: domain-driven-design/domain.md - Domain Driven Design: domain-driven-design/domain-driven-design.md - Domain Events: domain-driven-design/domain-events.md - Domain Service: domain-driven-design/domain-service.md - Enums: domain-driven-design/enums.md - Event Sourcing: domain-driven-design/event-sourcing.md - Exception And Validation: domain-driven-design/exception-and-validation.md - Infrastructure: domain-driven-design/infrastructure.md - Integration Events: domain-driven-design/integration-event.md - Mapping: domain-driven-design/mapping.md - ORMs: - Entity Framework: domain-driven-design/orm/ef.md - Persistence Ignorance: architectural-design-principles/persistence-ignorance.md - Primitive obsession: domain-driven-design/domain-primitives.md - Rich Domain Model: domain-driven-design/rich-domain-model.md - Strategic Design Patterns: domain-driven-design/strategic-design-patterns.md - Tactical Design Patterns: domain-driven-design/tactical-design-patterns.md - Value Objects: domain-driven-design/value-objects.md - Event Driven Architecture: event-driven-architecture.md - Eventual Consistency: eventual-consistency.md - Functional Programming: functional.md - gRPC: grpc.md - Hexagonal Architecture: hexagonal-architecture.md - Infrastructure as a Service: - Ansible: iaas/ansible.md - Infrastructure as a Service: iaas/iaas.md - Nomad: iaas/nomad.md - Pulumi: iaas/pulumi.md - Terraform: iaas/terraform.md - Messaging: - Async APIs Documentation: messaging/async-api-documentation.md - Azure Service Bus: azure/messaging/azure-service-bus.md - Change Data Capture (CDC): messaging/change-data-capture.md - Kafka: messaging/kafka.md - Messaging: messaging/messaging.md - Messaging Patterns: messaging/messaging-patterns.md - NATS: messaging/nats.md - RabbitMQ: messaging/rabbitmq.md - ZeroMQ: messaging/zeromq.md - Micro-Frontend: micro-frontend.md - Microservices: - Communication & Data Consistency: microservices/communication.md - Composite UI: microservices/composite-ui.md - Microservices: microservices/microservices.md - Observibility: - CorrelationId: microservices/observability/correlationId.md - Observibility: microservices/observability/observibility.md - Distributed Tracing: microservices/observability/distributed-tracing.md - Diagnostics: microservices/observability/diagnostics.md - Logging: microservices/observability/logging.md - Monitoring: microservices/observability/monitoring.md - Tools: - EFK: microservices/observability/tools/efk.md - ELK: microservices/observability/tools/efk.md - FluentBit: microservices/observability/tools/fluent-bit.md - FluentD: microservices/observability/tools/fluentd.md - Loki: microservices/observability/tools/loki.md - Resiliency: - Resiliency: microservices/resiliency/resiliency.md - High Availibility: microservices/resiliency/high-availibility.md - Idempotency: microservices/resiliency/idempotency.md - Services Boundries: microservices/services-boundries.md - Testing: microservices/testing.md - Tools: - CAP: microservices/tools/cap.md - Dapr: microservices/tools/dapr.md - Wolverine: microservices/tools/wolverine.md - SteelToe: microservices/tools/steeltoe.md - Tye: microservices/tools/tye.md - MassTransit: microservices/tools/mass-transit.md - Aspire: microservices/tools/aspire.md - NServiceBus: microservices/tools/nservicebus.md - CAP: microservices/tools/cap.md - Modeling: - Architecture Diagram: modeling/architecture-diagram.md - Class Diagram: modeling/class-diagram.md - Component Diagram: modeling/component-diagram.md - Conceptual Diagram: modeling/conceptual-diagram.md - Conceptual Modeling: modeling/conceptual-modeling.md - Data Modeling Notations: modeling/data-modeling-notations.md - Domain Stroytelling: modeling/domain-stroytelling.md - ER Diagrams: modeling/er-diagrams.md - Event Modeling: modeling/event-modeling.md - Event Storming: modeling/event-storming.md - Logical Modeling: modeling/logical-modeling.md - Modeling: modeling/modeling.md - Physical Modeling: modeling/physical-modeling.md - Relationship: modeling/relationship.md - Tools: modeling/tools.md - Use Case Diagram: modeling/use-case-diagram.md - Modular Monolith: modular-monolith.md - Object Oriented Design: object-oriented-design.md - Onion Architecture: onion-architecture.md - Open Source: open-source.md - Others: others.md - Platform as a Service: - Heroku: paas/heroku.md - Netlify: paas/netlify.md - OpenShift: paas/openshift.md - Rancher: paas/rancher.md - Refactoring: refactoring.md - RESTful API Design: rest.md - Reverse Proxy & Load Balancing: - Envoy: reverse-proxy-lb/envoy.md - Fabio: reverse-proxy-lb/fabio.md - HAProxy: reverse-proxy-lb/haproxy.md - Load Balancing: reverse-proxy-lb/load-balancing.md - MetalLB: reverse-proxy-lb/metallb.md - Nginx: reverse-proxy-lb/nginx.md - Reverse Proxy: reverse-proxy-lb/reverse-proxy.md - Traefik: reverse-proxy-lb/traefik.md - YARP: reverse-proxy-lb/yarp.md - Scaling: scaling.md - Service Discovery & Registry: - Consul: service-discovery/consul.md - Eureka: service-discovery/eureka.md - Service Discovery & Registry: service-discovery/service-discovery.md - Service Mesh: - Consul & Consul Connect: service-discovery/consul.md - Istio: service-mesh/istio.md - Linkerd: service-mesh/linkerd.md - Maesh: service-mesh/maesh.md - Service Mesh: service-mesh/service-mesh.md - Service Oriented Architecture: service-oriented-architecture.md - Software Architecture: software-architecture.md - Systems Design: - Consistent Hashing: systems-design/consistent-hash.md - Systems Design: systems-design/systems-design.md - Type Driven Design: type-driven-design.md - Vertical Slice Architecture: vertical-slice-architecture.md copyright: 2023 Mehdi Hadeli. #remote_branch: gh-pages #remote_name: origin extra: social: - icon: fontawesome/brands/twitter link: https://twitter.com/mehdi_hadeli - icon: fontawesome/brands/linkedin link: https://www.linkedin.com/in/mehdihadeli - icon: fontawesome/brands/github-alt link: https://github.com/mehdihadeli