From system-design
Design systems that communicate through events instead of direct service calls. Use when building loosely-coupled, scalable, and resilient architectures.
How this skill is triggered — by the user, by Claude, or both
Slash command
/system-design:event-driven-architectureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build systems where services communicate through immutable events, enabling loose coupling and independent scaling.
Build systems where services communicate through immutable events, enabling loose coupling and independent scaling.
You are designing an event-driven system. The user is building integrations across services or needs to decouple components. Read their current architecture and integration patterns.
Based on Gregor Hohpe's Enterprise Integration Patterns and modern event-driven research:
Define Events: For each business process, identify events (UserCreated, OrderPlaced, PaymentProcessed). Include: timestamp, aggregate ID, payload, version.
Design Producer & Consumer: For each service that publishes events, specify topic/channel. For consumers, specify subscription and reaction. Include idempotency key for deduplication.
Choose Messaging Infrastructure: Event bus (RabbitMQ, Kafka, SNS) vs database change data capture (CDC). Bus is simpler, CDC couples to database.
Handle Event Versioning: Publish event version. Consumers validate schema; ignore unknown fields. Plan rollout: old consumers coexist with new producers for transition period.
Establish Observability: Track event publication latency, consumer lag, dead letter queues (failed events). Alert on lag > threshold.
npx claudepluginhub sethdford/claude-skills --plugin architect-system-designDesigns event-driven systems with event sourcing and CQRS patterns, including event identification, schema design, transport selection, and versioning.
Designs event-driven architectures: maps event flows, defines topic topologies, validates delivery guarantees, and produces event catalog documentation for Kafka, RabbitMQ, SQS, NATS, or Redis Streams.
Designs event-sourced systems with CQRS, event stores, projections, sagas, snapshotting, and eventual consistency. Use for audit trails, temporal queries, and complex domain modeling.