Help us improve
Share bugs, ideas, or general feedback.
From system-design
Design systems that communicate through events instead of direct service calls. Use when building loosely-coupled, scalable, and resilient architectures.
npx claudepluginhub sethdford/claude-skills --plugin architect-system-designHow 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.
Maps event flows, designs topic topologies, schemas, and delivery guarantees for event-driven architectures using Kafka, RabbitMQ, Redis Streams, NATS, SQS. Supports event sourcing, CQRS, sagas.
Designs event-sourced systems with CQRS, event stores, projections, sagas, snapshotting, and eventual consistency. Use for audit trails, temporal queries, and complex domain modeling.
Redirects deprecated event-driven skill to references on patterns like outbox, saga, CQRS, schema versioning, Kafka topic design, consumer groups, DLQ, and exactly-once semantics.
Share bugs, ideas, or general feedback.
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.