All skills
github avatar

/cloud-design-patterns

@f8c2b32 official
by githubgithub/awesome-copilot40k stars
5,040

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.

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/cloud-design-patterns

This session only. Nothing lands on disk.

referencesmessaging-integration.md

≈1.2k tokens on demand. Your agent reads this file only when SKILL.md points to it.

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

Source: SKILL.md on GitHub

No alerts16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill is a collection of informational Markdown files describing cloud architecture design patterns. It contains no executable code, scripts, or active components, and all external links point to trusted documentation.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

  • Runlayer6mo

    10 files scanned · No issues

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at f8c2b32. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 20 hours ago.

Activeupdated 7 months ago
  • Performance
  • Security
  • cloud-architecture
  • distributed-systems
  • design-patterns
  • reliability
  • messaging
  • deployment
  • resilience
  • system-design

README badge

README badge for github/awesome-copilot/cloud-design-patterns

Provides reference material for 42 cloud design patterns spanning reliability, performance, messaging, security, and deployment—technology-agnostic solutions for common distributed systems challenges. Use when architecting workloads to address fallacies of distributed computing, evaluate trade-offs between patterns like Circuit Breaker or CQRS, and align designs with reliability and cost-optimization goals.

Generated from the current SKILL.md.

Are these patterns specific to Azure or cloud-agnostic?
The patterns are technology-agnostic and applicable across Azure, other cloud platforms, on-premises setups, and hybrid environments.
How many patterns does this skill cover?
The skill covers 42 industry-standard patterns organized across seven categories: reliability and resilience, performance, messaging and integration, architecture and design, deployment and operational, security, and event-driven architecture.
When should I use this skill?
Use this skill when designing, reviewing, or implementing distributed system architectures to address common challenges and avoid misconceptions about how distributed systems operate.
Does this skill help with security patterns?
Yes. The skill includes a security category with three patterns covering federated identity, quarantine, and valet key approaches.

Generated from the current SKILL.md. These answers refresh after source changes.