event-driven-architecture

Design event-driven architectures with Kafka, RabbitMQ, and SQS/SNS.

Updated Feb 10, 2026
One-click install
npx skills add https://github.com/delorenj/00_ceiling --skill event-driven-architecture-delorenj
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: event-driven-architecture
Source: https://github.com/delorenj/00_ceiling/tree/main/event-driven-architecture
Command: npx skills add https://github.com/delorenj/00_ceiling --skill event-driven-architecture-delorenj

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you design and implement event-driven systems that decouple services, making your applications more resilient, scalable, and maintainable.

Core Features & Use Cases

  • Asynchronous Workflows: Build systems where services communicate via events rather than direct calls.
  • Message Broker Integration: Supports Kafka, RabbitMQ, SQS/SNS, and NATS.
  • Pattern Implementation: Covers transactional outbox, idempotency, sagas, and dead-letter queues.
  • Use Case: When building a new e-commerce platform, use this Skill to design the order processing system so that order placement, payment, and inventory updates happen asynchronously and reliably.

Quick Start

Design an event-driven order processing system using Kafka, ensuring idempotency for all consumers.

Frequently Asked Questions about event-driven-architecture

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

FAQPage Schema
How do I design an event-driven architecture for asynchronous microservices?

Event-driven architecture decouples microservices by using message brokers like Kafka or RabbitMQ for asynchronous communication. This Skill helps you implement core patterns like transactional outbox and saga orchestration to build resilient, scalable systems.

When do I need the transactional outbox pattern in event-driven systems?

You need the transactional outbox pattern when you must guarantee an event is published if the database transaction succeeds. It prevents data inconsistency by reliably capturing events in a database table before asynchronously publishing them to a message broker.

What's the best way to handle distributed transactions across microservices?

Saga orchestration is the best way to handle distributed transactions across microservices. This Skill guides you in implementing sagas to manage multi-step asynchronous workflows, ensuring reliable compensation and rollback if a step like payment or inventory update fails.

Does this event-driven architecture Skill support Kafka and RabbitMQ?

Yes, this Skill supports message broker integration with Kafka, RabbitMQ, and SQS/SNS. It helps you design asynchronous workflows and implement idempotency and dead-letter queues across these platforms for robust decoupled communication.

How do I ensure idempotency for event consumers in Kafka?

Ensure idempotency for event consumers in Kafka by implementing deduplication logic within your consumer services. This Skill covers idempotency patterns so that processing duplicate asynchronous events does not cause unintended side effects or duplicate state changes.

When should I use event sourcing and CQRS in an event-driven system?

Use event sourcing and CQRS in an event-driven system when you need enhanced scalability and maintainability. This Skill encompasses these principles to separate read and write models, storing state transitions as a sequence of asynchronous domain events.