
Explore more than 25 cloud design patterns in Azure, learn the business problems they solve, and apply these patterns across clouds by focusing on concepts first.
Empower security with the gatekeeper pattern by placing a layer in front of application services via API management, hiding backend endpoints, and enabling authentication with the application gateway.
Consolidate multiple service calls into a single gateway endpoint under the gateway aggregation pattern and return an aggregated response. Use fan-out/fan-in with Azure durable functions and emphasize latency, resiliency, tracing.
Offload authentication, authorization, token validation, encryption, ssl offloading, throttling, logging, and monitoring via the gateway offloading pattern to Azure Active Directory, Key Vault, Application Insights, Log Analytics, and API Management.
Learn the gateway routing pattern, using a single endpoint to route requests to multiple services via routing rules, with front door or application gateway and optional gateway aggregator.
Explore the priority queue pattern in cloud design patterns, applying high, medium, and low priorities to messages, using priority cues or dedicated queues, with implementation strategies and tradeoffs.
Learn how the publisher-subscriber pattern enables asynchronous messaging to multiple subscribers via an Azure Service Bus topic, with subscriptions, security, and handling duplicates and poisoned messages.
Explore the queue-based load leveling pattern that buffers database operations with a message queue between service and SQL database, boosting resiliency and performance while highlighting use cases and pitfalls.
Learn the asynchronous request-reply pattern to decouple front end from back end using azure service bus, enabling long-running processes and status checks with 202 accepted and 200 ok responses.
Isolate application components into bulkhead pools to prevent cascading failures and maintain service availability. Explore how bulkhead patterns pair with circuit breakers, throttling, and asynchronous communication using containers and workloads.
The retry pattern improves reliability by handling transient errors with server-side retries, using delay or immediate strategies and circuit breakers to avoid duplicates and user-visible failures.
Offload static content from compute services to cloud storage such as Azure Blob Storage or AWS S3, and deliver via a CDN to improve cost and performance.
Split large messages using the claim-check pattern by separating payload and check, store payload externally, and send a reference to enable scalable, reliable asynchronous processing.
Explore the ambassador pattern to centralize connectivity features in a dedicated container, simplifying remote service calls for microservices while highlighting latency and single points of failure.
Discover how the anti-corruption layer pattern enables safe integration between legacy and new systems by translating between protocols with an API, facade, and adapter, preventing corruption to each system.
The Strangler Fig pattern enables migrating a legacy system to a new architecture while keeping the website functional, via a facade and anti-corruption layer that isolates frontend from backend services.
Explore the backends-for-frontends pattern by splitting a single backend into desktop, mobile, and Alexa services to tailor data for each front end while centralizing business logic and reducing duplication.
Explore the sidecar pattern in cloud design: isolate modules in a separate container while enabling interaction with the primary application, improving resilience, configuration, and deployment across languages.
Explore the throttling pattern in cloud design, learn how to limit the rate of user requests to improve reliability and performance and protect service availability.
Learn the valet key pattern, a cloud design pattern that issues time-limited tokens to grant clients restricted access to cloud storage resources, offloading data movement from your app.
Federated identity delegates authentication to external providers, enabling single sign-on across apps, decoupling authentication from authorization, and simplifying user management while highlighting availability and security considerations.
Learn how deployment stamp pattern in Azure enables scalable, multiregion deployments with isolated stamps, using ARM templates, traffic routing via Azure Front Door, and considerations for cost and multitenancy.
Explore the geode pattern for global, geo-distributed architectures that scale out across regions with equal nodes, using Cosmos DB replication and Azure Front Door to route traffic for high availability.
Move external configuration data from local deployment settings to a cloud-based store to share across multiple apps and instances, improving manageability and avoiding per-instance reconfiguration.
The choreography pattern enables each service to participate in a business transaction using a message queue, removing a single point of control and promoting decentralized coordination.
Learn how the competing consumer pattern enables multiple consumer instances to pull from a single messaging channel, improving throughput, availability, and scalability while decoupling producers from consumers.
Learn how the cache-aside pattern loads on-demand data from the data store into the cache, with read-through, write-through, and write-behind strategies, eviction policies, and consistency considerations.
Explore the sequential convoy pattern for ordered message processing, using first-in, first-out queues to route categorized messages to dedicated consumers.
The compensating transaction pattern undoes work from a series of steps in an eventually consistent cloud workflow, using reverse operations to revert successful tasks when a failure occurs.
Designing Robust Workloads with Cloud Design Patterns
Cloud architects achieve resilient, secure, and high-performing workloads by thoughtfully integrating platform services, functional capabilities, and custom code to meet both business and technical requirements. Effective cloud solutions require a deep understanding of these requirements, as well as careful selection of topologies and methodologies to address the unique challenges and constraints of each workload. Cloud design patterns—proven approaches to recurring architectural problems—offer valuable guidance for overcoming these challenges.
The Importance of Design Patterns in Cloud Architecture
Established design patterns are fundamental building blocks for system architecture. By leveraging these patterns, architects can design infrastructure and distributed systems that are reliable, secure, cost-effective, efficient, and high-performing. The patterns covered in this course are technology-agnostic and can be applied across Microsoft Azure, other cloud platforms, on-premises environments, and hybrid solutions.
Why Cloud Design Patterns Matter
Cloud-based workloads encounter unique challenges, often related to commonly misunderstood assumptions of distributed computing—such as assuming networks are always reliable, latency is zero, bandwidth is unlimited, security is guaranteed, system topologies remain static, administration is consolidated, component versioning is simple, and observability can be postponed. These mistaken assumptions can compromise system reliability and performance. Cloud design patterns do not eliminate these challenges outright, but they help identify potential issues and provide mitigation strategies. Each pattern presents specific trade-offs; understanding why a pattern should be applied is just as crucial as understanding how to implement it.
Using Patterns to Build Well-Architected Workloads
Industry-standard design patterns are the foundation for creating robust, scalable, and efficient cloud solutions. Each pattern aligns with key pillars of architectural excellence: reliability, security, performance efficiency, operational excellence, and cost optimization. Some patterns may introduce trade-offs among these pillars, so thoughtful evaluation is essential during the design process
Key Cloud Design Patterns Covered
This course covers a range of primary patterns, including:
Ambassador: Offload client connectivity tasks to a helper service for greater abstraction.
Anti-Corruption Layer: Implement a façade to safely integrate with legacy systems.
Asynchronous Request-Reply: Support asynchronous backend processing while providing timely frontend responses.
Backends for Frontends: Create tailored backend APIs for specific frontend interfaces to achieve better separation of concerns.
Bulkhead: Isolate application components into pools to limit the impact of failures and enhance system resilience.
Cache-Aside: Load data into a cache on demand to improve application responsiveness.
Choreography: Empower individual services to control business operations independently, removing the need for a central orchestrator.
Claim Check: Break down large messages to prevent overloading message brokers and streamline message processing.
Compensating Transaction: Define steps to undo operations as part of eventually consistent workflows.
Competing Consumers: Scale processing by allowing multiple consumers to process messages in a queue simultaneously.
Deployment Stamps: Deploy independent sets of infrastructure components to enhance scalability and isolation.
External Configuration Store: Manage configuration externally, separate from application deployment packages.
Federated Identity: Delegate authentication processes to external identity providers for improved security.
Gatekeeper: Use an intermediary service to securely validate and broker client requests.
Gateway Aggregation: Combine multiple backend calls into a single request using an API gateway.
Gateway Offloading: Delegate shared or compute-intensive tasks to a specialized proxy gateway.
Gateway Routing: Direct incoming requests to different backend services through a unified endpoint.
Geodes: Deploy backend services across geographically distributed nodes to maximize availability and performance.
Priority Queue: Ensure high-priority requests receive expedited processing.