distributed-systems-patterns

Guide engineers in selecting distributed patterns for multi-service workflows.

Updated Apr 8, 2026
One-click install
npx skills add https://github.com/s3nex-com/sdlc-skills-library --skill distributed-systems-patterns-s3nex-com
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: distributed-systems-patterns
Source: https://github.com/s3nex-com/sdlc-skills-library/tree/main/skills/phase2/distributed-systems-patterns
Command: npx skills add https://github.com/s3nex-com/sdlc-skills-library --skill distributed-systems-patterns-s3nex-com

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It helps engineers choose and implement appropriate distributed patterns (orchestration vs choreography, sagas, event sourcing considerations) to manage multi-service workflows with correct compensations and reliability.

Core Features & Use Cases

  • Guidance on when to use or avoid patterns like Saga, outbox, and CQRS.
  • Decision criteria and step-by-step reasoning for selecting orchestration vs choreography, and pattern compensations.
  • Worked examples and reference schemas to implement robust cross-service workflows.

Quick Start

Analyze a multi-service workflow you are building and decide whether to apply an orchestrated saga, a choreography approach, or an outbox-based pattern; then implement the appropriate compensation and idempotency rules.

Frequently Asked Questions about distributed-systems-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
When do I need a saga pattern for multi-service workflows?

You need a saga pattern when a transaction spans multiple services and requires coordinated compensations to maintain data consistency. It applies to event-driven architectures where distributed transactions are necessary and explicit consistency trade-offs must be defined.

How do I choose between orchestration and choreography for distributed patterns?

Choose orchestration vs choreography by evaluating workflow complexity and coupling. Orchestration centralizes coordination for explicit control, while choreography uses event-driven reactions for decentralized autonomy, with decision criteria and step-by-step reasoning provided for selection.

What is the outbox pattern and when should I avoid it?

The outbox pattern ensures reliable event publishing within the same database transaction as state changes. You should avoid it if your system cannot handle the eventual consistency trade-offs or lacks the infrastructure to reliably poll and publish transactional outbox entries.

How do I implement idempotency strategies in event-driven systems?

Implement idempotency strategies by defining unique identifiers for events and tracking processed messages to prevent duplicate execution. This ensures reliable cross-service workflows by making operations safely retryable without side effects.

Does CQRS work with event sourcing for distributed transactions?

CQRS works with event sourcing considerations by separating read and write models to optimize multi-service workflows. It satisfies requirements for explicit consistency trade-offs, though it should be evaluated against your specific query latency and scaling needs.