Open-source project
Azure-Samples/cloud-design-patterns avatar
Azure-Samples/cloud-design-patterns

Azure cloud-design-patterns: sample code for the Architecture Center patterns

Sample implementations for cloud design patterns found in the Azure Architecture Center.

856 stars306 forksC#MIT

At a glance

What is it?
The Azure-Samples/cloud-design-patterns repository collects the companion code for the Cloud Design Patterns series in the Azure Architecture Center, with sample directories for nine patterns and pointers to three hosted elsewhere. It is a reading companion for architects and developers, not a library you install, and it works best next to the pattern article rather than instead of it.
Who is it for?
This repository suits an architect or developer who has read a Cloud Design Patterns article and now wants working code to point at, since each pattern directory sits next to a definition link in the Azure Architecture Center. It does not suit you if you need a library, a package feed, or a single runnable application, because nothing here is published as a release and the samples are organised as separate pattern folders rather than a buildable product.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 70 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 25, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Companion code for the Architecture Center articles, not a product

The repository is described in one line as companion code for the article series found in the Cloud Design Patterns series in the Azure Architecture Center. That framing sets expectations correctly, and it is worth holding onto it before reading anything else.

There is no library here. Nothing in the description or the top level listing suggests a package, a service, or a framework that you would add to a project. What you get is a set of sample implementations, one directory per pattern, each sitting next to a link to the pattern definition on Microsoft Learn.

That makes it a different kind of artefact from most code on GitHub. Its value is in the pairing. When a pattern article explains a Claim Check or a Valet Key in prose and diagrams, the corresponding folder gives you something to read. For a team that is choosing an approach and wants to see how it looks in code before committing, that pairing is the point.

The audience is therefore people making architecture decisions, or writing code that implements those decisions, and reading it in that order works far better than the reverse. The repository is MIT licensed, hosted by Azure-Samples, and publishes no GitHub releases, which is consistent with how it is meant to be consumed.

Nine patterns have their own directory, three are hosted elsewhere

The README holds a single table mapping each pattern definition to its sample code, and the table is more informative than it first appears. It makes an explicit distinction between samples that live in this repository and samples donated to other places.

The local directories are Asynchronous Request-Reply, Choreography, Claim Check, Leader Election, Pipes and Filters, Priority Queue, Sharding, Static Content Hosting and Valet Key, each in a folder named after the pattern, for example ./claim-check/ and ./valet-key/.

Three patterns are marked with an asterisk and their code lives in a different repository. Health Endpoint Monitoring points at the dotnet/AspNetCore.Docs health checks sample, Rate Limiting points at the Go Azure-Samples/go-batcher repository and the Java Azure-Samples/java-rate-limiting-pattern-sample repository, and Saga points at Azure-Samples/saga-orchestration-serverless. A note under the table explains that items marked this way are part of the Azure Architecture Center series, but that the sample code is hosted in a different repository.

That asterisk is the single most useful thing in the README for a newcomer, because it tells you that a click on a folder may leave this repository entirely.

Reading the pattern table is the intended way to use the samples

There is no install step to run, and the README does not offer one. There is no build script described, no package to publish, and no configuration to set. The project is consumed by reading it, which means the workflow is short.

Start from the pattern you care about. The first column of the table links to the pattern definition in the Azure Architecture Center, and the second column points to the code. Read the definition first, because the samples assume you already know what problem the pattern solves and what its trade-offs are. Then open the directory and read the implementation against the prose.

The directory names are the pattern names, so the mapping is guessable without any tooling, and the top level of the repository lists them directly: async-request-reply, choreography, claim-check, leader-election, pipes-and-filters, priority-queue, sharding, static-content-hosting and valet-key, plus the standard repository files such as CONTRIBUTING.md, LICENSE, SECURITY.MD, a .devcontainer directory and a .github directory.

That flat layout has a practical consequence for anyone automating anything. There is no single build to run across the samples, so each pattern is a separate reading exercise with its own stack, and there is no documented command in the README that turns the whole repository into one deployable thing.

The donated samples pull you into other repositories and other languages

The pattern table is a good argument for treating this repository as an index rather than a codebase. Three of the twelve entries resolve somewhere else entirely, and those three are the ones most likely to surprise someone who expects to clone a single repository and find everything in it.

Health Endpoint Monitoring resolves to the ASP.NET Core documentation repository rather than to an Azure sample, which tells you the pattern is demonstrated through a web framework health check implementation rather than through a cloud service. Rate Limiting is split across two languages, Go and Java, in two separate sample repositories. Saga resolves to a serverless orchestration sample.

The languages are not uniform across the local directories either. The repository's primary language is C#, but the pattern set spans distributed systems concerns that map naturally onto different stacks, and the Rate Limiting entry shows a Go and a Java sample rather than a C# one.

For a team standardising on one stack, that is a limitation worth measuring before you commit. If your policy is that every reference implementation must be in the language you ship, this repository will not satisfy it on its own, and you will spend time mapping articles to whichever sample is closest to your own technology choices.

Repository topics point at the pillars the samples are meant to cover

The topic tags attached to the repository give a hint about the intended scope: azure, cloud, cost-optimization, design-patterns, operational-excellence, performance-efficiency, reliability and security.

Read together, those tags describe the concerns a Cloud Design Patterns series normally covers, and they are a more honest statement of intent than the pattern table alone. Reliability, security, operational excellence, performance efficiency and cost optimisation are the recurring pressures that push a team toward a specific pattern in the first place, so a repository carrying those tags is telling you it addresses the decision rather than only the code.

The set of patterns in the table matches that claim reasonably well. Leader Election and Priority Queue are reliability and throughput patterns. Claim Check, Valet Key and Static Content Hosting address message size, credential handling and cost of serving static files. Choreography and Saga cover distributed transaction flows, and Pipes and Filters covers processing pipelines. Asynchronous Request-Reply covers decoupling a caller from a slow backend.

One thing the topics do not cover is anything to do with data storage or consistency, and the table has no entries for a data-related pattern. If your architecture question is about replication or partitioning of stored data, Sharding is the only storage-adjacent sample here, and it covers sharding across consumers rather than sharding a database.

MIT licensed, contributor guide, and no published releases

The project is MIT licensed, with the LICENSE file at the repository root, and contributions are handled through a CONTRIBUTING.md that the README links. The project has also adopted the Microsoft Open Source Code of Conduct, with a separate FAQ page and a contact address for questions and concerns. A SECURITY.MD file sits alongside those, which is the usual place for a vulnerability disclosure process.

On maintenance, the last push to the repository was on 2026-08-17, and there are no GitHub releases at all. That combination is normal for a sample repository. Samples track services, and services change; a pattern article that drifts out of date with its code is worse than no sample, so the useful signal to watch is whether the sample directories are still being touched when the underlying Azure services change, not whether a version tag moved.

The .devcontainer directory is a small detail worth noticing. It suggests at least some contributors work inside a containerised environment, which matters for the C# samples that need a specific SDK. The .github directory holds the automation for the repository, though the README does not describe which checks run on a pull request, and it does not say whether the samples are built or tested continuously in CI. That is a real gap for anyone planning to fork the repository, because you would be assuming a continuous integration story the documentation never promises.

Editorial conclusion

This repository suits an architect or developer who has read a Cloud Design Patterns article and now wants working code to point at, since each pattern directory sits next to a definition link in the Azure Architecture Center. It does not suit you if you need a library, a package feed, or a single runnable application, because nothing here is published as a release and the samples are organised as separate pattern folders rather than a buildable product. Before you rely on it, open the pattern article and the matching directory side by side, follow the three pointers to the donated samples for Health Endpoint Monitoring, Rate Limiting and Saga if those are the ones you need, and check that the pattern still matches the current Azure services, since the last push to the repository was on 2026-08-17 and the samples age with the services they call.

Frequently asked questions

What does the Azure cloud-design-patterns repository contain?

It contains companion code for the Cloud Design Patterns article series in the Azure Architecture Center. Sample directories exist in the repository for patterns such as Claim Check, Leader Election, Priority Queue, Sharding and Valet Key.

Where do I find the Rate Limiting and Saga samples?

Those two patterns are marked in the README table as hosted in different repositories. Rate Limiting points at the Go go-batcher sample and the Java rate limiting sample, and Saga points at the saga-orchestration-serverless sample.

Can I install the cloud-design-patterns samples as a package?

There is no install step. The README describes companion code for published articles, and the repository has no GitHub releases, so the samples are meant to be read and adapted rather than pulled from a feed.

What licence covers the cloud-design-patterns samples?

The repository is MIT licensed, with the LICENSE file in the root directory. Contributions follow the CONTRIBUTING.md guide, and the project has adopted the Microsoft Open Source Code of Conduct.

Official sources

  1. Azure-Samples/cloud-design-patterns on GitHub
  2. Issues
  3. License: MIT
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/azure-samples-cloud-design-patterns.svg)](https://hysenlabs.com/projects/azure-samples-cloud-design-patterns)

Was this useful?