event-driven

Outline event-driven architecture patterns for brokers, idempotency, and outbox handling.

186|15|Updated Apr 2, 2026
One-click install
npx skills add https://github.com/kid-sid/claude-spellbook --skill event-driven-kid-sid
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: event-driven
Source: https://github.com/kid-sid/claude-spellbook/tree/main/skills/event-driven
Command: npx skills add https://github.com/kid-sid/claude-spellbook --skill event-driven-kid-sid

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Designing and debugging event-driven architectures can be complex due to broker selection, delivery guarantees, and cross-service coordination. This knowledge base provides patterns for reliable messaging, idempotent consumers, outbox/polling patterns, dead-letter handling, and event-sourced design decisions.

Core Features & Use Cases

  • Broker design guidance for Kafka, RabbitMQ, and cloud services to ensure correct topic/partition topology
  • Idempotent consumer patterns, outbox pattern for reliable dual-write, and dead-letter queue strategies
  • Event sourcing and CQRS read-model planning with snapshotting and replay for auditing and feature delivery

Quick Start

Execute an initial plan to apply event-driven patterns to a microservices project, including idempotency, outbox, and DLQ setups.

Frequently Asked Questions about event-driven

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

FAQPage Schema
How do I implement the outbox pattern for reliable dual-writes in event-driven microservices?

The outbox pattern ensures reliable dual-writes by capturing events in a local database outbox table within the same transaction as business state changes, then polling or streaming them to a broker to guarantee delivery without data inconsistency.

What is the best way to make Kafka consumers idempotent in an event-driven architecture?

Idempotent consumers in Kafka or other brokers typically store processed event identifiers and check them before handling, ensuring duplicate deliveries are safely ignored without re-applying state mutations or triggering side effects.

How does event sourcing with CQRS read-model projections work for auditing and replay?

Event sourcing stores domain changes as an immutable event log, while CQRS read-model projections subscribe to these events to build query-optimized views, enabling state replay and full auditing by reprocessing past events.

When should I use a dead-letter queue in RabbitMQ or Kafka event-driven systems?

A dead-letter queue should be used when messages fail processing after exceeding retry limits, isolating poison pills or unprocessable events for later debugging and reprocessing without blocking the main consumer pipeline.

How do I handle schema versioning and safe event evolution across microservices?

Safe schema evolution requires defining backward-compatible event envelopes and applying schema versioning strategies, allowing consumers to handle multiple event versions gracefully without breaking downstream processing during transitions.

Does this event-driven design guidance apply to both Kafka and cloud broker setups?

Yes, the patterns apply to Kafka, RabbitMQ, and cloud brokers, providing guidance on topic and partition topology, delivery semantics, and cross-service coordination tailored to each specific messaging platform's capabilities.