Generated banner for Cloud Design Patterns
Generated logo for Cloud Design Patterns

Cloud Design Patterns

GitHubOfficialFirst committed by fatihdurgutDistributed by GitHub

  • Skill
  • Guidelines
  • Software development
  • MIT
  • No issues found

From the author

Cloud design patterns for distributed systems architecture covering 42 industry-standard patterns across reliability, performance, messaging, security, and deployment categories. Use when designing, reviewing, or implementing distributed system architectures.
— the description by fatihdurgut

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

Cloud Design Patterns provides a structured collection of architectural solutions designed to address common challenges in distributed systems. It helps architects and developers navigate the complexities of cloud-native design by offering technology-agnostic patterns that mitigate risks associated with distributed computing, such as network latency, reliability, and security. The collection covers seven key categories including reliability, performance, messaging, architecture, deployment, security, and event-driven design, enabling teams to make informed trade-off decisions when building modern applications.

What it does

  • Provides definitions and problem-solution mappings for 42 cloud design patterns.
  • Categorizes patterns by architectural focus such as performance, reliability, and security.
  • Offers guidance on when to apply specific patterns to solve distributed system challenges.
  • Highlights implementation considerations and trade-offs for each architectural pattern.
  • Maps common design patterns to relevant cloud service types.
  • Addresses common fallacies of distributed computing through architectural mitigation strategies.

When to use it

  • When designing the architecture for a new distributed cloud application.
  • During architectural reviews to identify potential weaknesses or optimization opportunities.
  • When evaluating strategies to improve system reliability, performance, or security.
  • When planning the migration or modernization of legacy systems.
  • When seeking standard approaches to common cross-cutting concerns like API management or messaging.

Advantages

  • Technology-agnostic guidance applicable across various cloud and hybrid environments.
  • Focuses on architectural trade-offs rather than specific implementation details.
  • Helps prevent common design flaws by addressing distributed system fallacies.
  • Provides a standardized vocabulary for architectural discussions within development teams.

Usage examples

“What pattern should I use to integrate a legacy system with a new microservices architecture?”
The agent recommends the Anti-Corruption Layer pattern, explaining how to implement a facade to isolate the modern system from legacy constraints.
“How can I improve the performance of my application when clients need data from multiple backend services?”
The agent suggests the Gateway Aggregation pattern to combine multiple backend requests into a single call, reducing chattiness and latency.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/github/cloud-design-patterns/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip cloud-design-patterns.zip -d .agents/skills

Documentation by fatihdurgut

Cloud Design Patterns

Architects design workloads by integrating platform services, functionality, and code to meet both functional and nonfunctional requirements. To design effective workloads, you must understand these requirements and select topologies and methodologies that address the challenges of your workload's constraints. Cloud design patterns provide solutions to many common challenges.

System design heavily relies on established design patterns. You can design infrastructure, code, and distributed systems by using a combination of these patterns. These patterns are crucial for building reliable, highly secure, cost-optimized, operationally efficient, and high-performing applications in the cloud.

The following cloud design patterns are technology-agnostic, which makes them suitable for any distributed system. You can apply these patterns across Azure, other cloud platforms, on-premises setups, and hybrid environments.

How Cloud Design Patterns Enhance the Design Process

Cloud workloads are vulnerable to the fallacies of distributed computing, which are common but incorrect assumptions about how distributed systems operate. Examples of these fallacies include:

  • The network is reliable.

  • Latency is zero.

  • Bandwidth is infinite.

  • The network is secure.

  • Topology doesn't change.

  • There's one administrator.

  • Component versioning is simple.

  • Observability implementation can be delayed.

These misconceptions can result in flawed workload designs. Design patterns don't eliminate these misconceptions but help raise awareness, provide compensation strategies, and provide mitigations. Each cloud design pattern has trade-offs. Focus on why you should choose a specific pattern instead of how to implement it.


References

ReferenceWhen to load
Reliability & Resilience PatternsAmbassador, Bulkhead, Circuit Breaker, Compensating Transaction, Retry, Health Endpoint Monitoring, Leader Election, Saga, Sequential Convoy
Performance PatternsAsync Request-Reply, Cache-Aside, CQRS, Index Table, Materialized View, Priority Queue, Queue-Based Load Leveling, Rate Limiting, Sharding, Throttling
Messaging & Integration PatternsChoreography, Claim Check, Competing Consumers, Messaging Bridge, Pipes and Filters, Publisher-Subscriber, Scheduler Agent Supervisor
Architecture & Design PatternsAnti-Corruption Layer, Backends for Frontends, Gateway Aggregation/Offloading/Routing, Sidecar, Strangler Fig
Deployment & Operational PatternsCompute Resource Consolidation, Deployment Stamps, External Configuration Store, Geode, Static Content Hosting
Security PatternsFederated Identity, Quarantine, Valet Key
Event-Driven Architecture PatternsEvent Sourcing
Best Practices & Pattern SelectionSelecting appropriate patterns, Well-Architected Framework alignment, documentation, monitoring
Azure Service MappingsCommon Azure services for each pattern category

Pattern Categories at a Glance

CategoryPatternsFocus
Reliability & Resilience9 patternsFault tolerance, self-healing, graceful degradation
Performance10 patternsCaching, scaling, load management, data optimization
Messaging & Integration7 patternsDecoupling, event-driven communication, workflow coordination
Architecture & Design7 patternsSystem boundaries, API gateways, migration strategies
Deployment & Operational5 patternsInfrastructure management, geo-distribution, configuration
Security3 patternsIdentity, access control, content validation
Event-Driven Architecture1 patternEvent sourcing and audit trails

Files

references/messaging-integration.md

Messaging & Integration Patterns

Choreography Pattern

Problem: Central orchestrators create coupling and single points of failure.

Solution: Let individual services decide when and how a business operation is processed through event-driven collaboration.

When to Use:

  • Loosely coupled microservices architectures

  • Event-driven systems

  • Avoiding central orchestration bottlenecks

Implementation Considerations:

  • Use publish-subscribe messaging for event distribution

  • Each service publishes domain events and subscribes to relevant events

  • Implement saga pattern for complex workflows

  • Ensure idempotency as events may be delivered multiple times

  • Provide comprehensive logging and distributed tracing

Claim Check Pattern

Problem: Large messages can overwhelm message infrastructure.

Solution: Split a large message into a claim check (reference) and a payload stored separately.

When to Use:

  • Messages exceed messaging system size limits

  • Reducing message bus load

  • Handling large file transfers asynchronously

Implementation Considerations:

  • Store payload in blob storage or database

  • Send only reference/URI through message bus

  • Implement expiration policies for stored payloads

  • Handle access control for payload storage

  • Consider costs of storage vs message transmission

Competing Consumers Pattern

Problem: Single consumer may not keep up with message volume.

Solution: Enable multiple concurrent consumers to process messages from the same messaging channel.

When to Use:

  • High message throughput requirements

  • Scaling message processing horizontally

  • Load balancing across multiple instances

Implementation Considerations:

  • Ensure messages can be processed in any order

  • Use competing consumer queues (Service Bus, RabbitMQ)

  • Implement idempotency for message handlers

  • Handle poison messages with retry and dead-letter policies

  • Scale consumer count based on queue depth

Messaging Bridge Pattern

Problem: Different systems use incompatible messaging technologies.

Solution: Build an intermediary to enable communication between messaging systems that are otherwise incompatible.

When to Use:

  • Migrating between messaging systems

  • Integrating with legacy systems

  • Connecting cloud and on-premises messaging

Implementation Considerations:

  • Transform message formats between systems

  • Handle protocol differences

  • Maintain message ordering if required

  • Implement error handling and retry logic

  • Monitor bridge performance and health

Pipes and Filters Pattern

Problem: Complex processing tasks are difficult to maintain and reuse.

Solution: Break down a task that performs complex processing into a series of separate, reusable elements (filters) connected by channels (pipes).

When to Use:

  • Processing data streams with multiple transformations

  • Building reusable processing components

  • Enabling parallel processing of independent operations

Implementation Considerations:

  • Each filter performs a single transformation

  • Connect filters using message queues or streams

  • Enable parallel execution where possible

  • Handle errors within filters or at pipeline level

  • Support filter composition and reordering

Publisher-Subscriber Pattern

Problem: Applications need to broadcast information to multiple interested consumers.

Solution: Enable an application to announce events to multiple consumers asynchronously, without coupling senders to receivers.

When to Use:

  • Broadcasting events to multiple interested parties

  • Decoupling event producers from consumers

  • Implementing event-driven architectures

Implementation Considerations:

  • Use topic-based or content-based subscriptions

  • Ensure message delivery guarantees match requirements

  • Implement subscription filters for selective consumption

  • Handle consumer failures without affecting publishers

  • Consider message ordering requirements per subscriber

Scheduler Agent Supervisor Pattern

Problem: Distributed actions need coordination and monitoring.

Solution: Coordinate a set of actions across distributed services and resources with a supervisor that monitors and manages the workflow.

When to Use:

  • Orchestrating multi-step workflows

  • Coordinating distributed transactions

  • Implementing resilient long-running processes

Implementation Considerations:

  • Scheduler dispatches tasks to agents

  • Agents perform work and report status

  • Supervisor monitors progress and handles failures

  • Implement compensation logic for failed steps

  • Maintain state for workflow recovery

Requirements and compatibility

Written for: GitHub Copilot

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

First committed by
GitHub avatar of fatihdurgutfatihdurgut
Publisher
GitHub (Official)
Distributed by
GitHub
Source
github/awesome-copilot · skills/cloud-design-patterns · commit 797337f
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Contributors
fatihdurgut

AutoGineer is not affiliated with or endorsed by fatihdurgut or GitHub.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download cloud-design-patterns.zip