Skip to content
Development
Skill

/system-design-integration-patterns

Choose distributed integration and evolution patterns by the constraint each removes: outbox, CQRS, event sourcing, saga orchestration or choreography, leader election, sidecar, anti-corruption layer, and strangler-fig migration. Use when services must stay consistent across a

From plugin
agent-skills-standard
583200 skills21 agents33 commands1 MCP

Claude Code

$ npx -y skills add hoangnguyen0403/agent-skills-standard --skill system-design-integration-patterns --agent claude-code

SKILL.md

system-design-integration-patterns.SKILL.md
name: system-design-integration-patterns
description: "Choose distributed integration and evolution patterns by the constraint each removes: outbox, CQRS, event sourcing, saga orchestration or choreography, leader election, sidecar, anti-corruption layer, and strangler-fig migration. Use when services must stay consistent across a boundary."
metadata:
  triggers:
    keywords:
      - cqrs
      - event sourcing
      - saga
      - durable execution
      - workflow replay
      - reconciliation
      - outbox
      - leader election
      - sidecar
      - strangler fig
      - backends for frontends
      - anti-corruption layer
      - choreography

Integration Patterns

**Priority: P1 (HIGH)**

Each pattern buys one guarantee and charges operational complexity. Adopt on evidence, not on architecture fashion.

Selection Table

| Constraint observed | Pattern | Cost accepted | | --- | --- | --- | | A write must update the database and publish an event atomically | Transactional outbox | A relay (poller or CDC) to run and monitor | | Read shape and write shape have diverged and one model serves neither | CQRS | Two models, sync lag, doubled tests | | The sequence of changes is itself the product (audit, replay, temporal queries) | Event sourcing | Projections, event versioning, no easy delete | | A business process crosses services and needs recoverable coordination | Saga or durable workflow | Persisted progress, retries, reconciliation, and only feasible compensations | | Exactly one instance may run a job or own a resource | Leader election (lease-based) | Fencing tokens; split-brain handling | | Cross-cutting concerns repeated in every service | Sidecar or ambassador | Another process per pod to operate | | A legacy or third-party model would infect the domain | Anti-corruption layer | A translation layer to maintain | | Each client surface needs a different aggregate shape | Backends-for-frontends | One backend per surface, owned by that team | | A monolith must be replaced without a rewrite freeze | Strangler fig | Dual routing and a live seam until the last slice moves |

Consistency Across a Boundary

  • Avoid dual-write: atomically persist local state plus publication intent where both must commit; use an outbox/CDC only when that boundary requires it.
  • Deduplicate delivery on the normalized event identity—source plus event ID, or an equivalent globally unique ID—and arbitrate effects on stable business-operation identity. A bare event ID from two sources is two events. Broker delivery guarantees stop at the broker.
  • A timeout after a possible commit is an unknown outcome: query or reconcile before retrying, never retry blindly.
  • Select saga orchestration or choreography from visibility, ownership, coupling and recovery needs—not a fixed step count.
  • Compensate only when the domain permits reversal. Irreversible or ambiguous effects need idempotent retry, reconciliation, or forward recovery; compensation is another fallible effect.
  • Keep correlation identifiers for tracing; they never arbitrate effects. Long-running progress must be replay-safe and version-compatible.

Evolution

  • Strangler fig: route one slice at a time behind a facade, run old and new in parallel, retire the old path only after traffic and data are verified.
  • Branch by abstraction inside a service: introduce the seam, implement behind it, switch, delete the old side.
  • Schema and event changes follow expand-contract, as in `system-design-data-architecture`.

Anti-Patterns

  • **No CQRS by default**: separate models only after one model demonstrably fails both sides.
  • **No event sourcing for ordinary CRUD**: audit needs an audit log, not a rebuilt world.
  • **No dual write**: where local state and a publication must commit together, use outbox or CDC; never a database write followed by a hopeful publish.
  • **No exactly-once claim from broker delivery**: topic-level guarantees do not cover external effects; use inbox dedupe plus operation identity.
  • **No universal choreography cutoff**: choose coordination from observability, ownership, coupling and recovery constraints.
  • **No two-phase commit on the hot path**: the coordinator is a SPOF and the locks are the outage.
  • **No distributed lock as a correctness mechanism**: leases expire under GC pauses; use fencing tokens or single ownership.

References

  • [Integration Patterns Detail](references/integration-patterns.md) - outbox and inbox mechanics, saga coordination and recovery, event versioning, BFF ownership, strangler phases
  • [Durable Execution](references/durable-execution.md) - workflow replay, durable timers, activity cancellation, unknown outcomes, effect identity, and version compatibility
Read more
@hoangnguyen0403
Ships withagent-skills-standard

The portable standards layer for AI coding agents. Sync once, then work in your own runtime.

583200 skills21 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
583
Star history of hoangnguyen0403/agent-skills-standard on GitHub, a chart by star-history.com

Other skills on agent-skills-standard.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about system-design-integration-patterns.

Which coding agents can use system-design-integration-patterns?
system-design-integration-patterns installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.