event-driven-architecture

Guide event-driven architecture patterns for messaging and asynchronous systems.

9|1|Updated Feb 1, 2026
One-click install
npx skills add https://github.com/calcosmic/Aether --skill event-driven-architecture-calcosmic
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: event-driven-architecture
Source: https://github.com/calcosmic/Aether/tree/main/.aether/skills-codex/domain/event-driven-architecture
Command: npx skills add https://github.com/calcosmic/Aether --skill event-driven-architecture-calcosmic

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Facilitates building scalable systems by applying event-driven patterns that decouple services, improve resilience, and enable reliable data flows.

Core Features & Use Cases

  • Event Sourcing for immutable history and replayability.
  • CQRS to separate write and read models for scalable reads and writes.
  • Guidance on messaging backbones (Kafka, RabbitMQ, SQS/SNS) and on idempotency, retries, and schema evolution.

Quick Start

Learn and implement event-driven architecture patterns by mapping services to event streams and setting up an initial event store.

Frequently Asked Questions about event-driven-architecture

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

FAQPage Schema
What is event-driven architecture and when do I need it for microservices?

Event-driven architecture is an asynchronous pattern that decouples microservices via event streams to improve resilience and enable scalable data flows. You need it when building distributed domains requiring reliable, independent service communication and immutable history.

How do I choose a messaging backbone like Kafka or RabbitMQ for distributed systems?

Choosing a messaging backbone requires evaluating throughput, ordering, and routing needs across distributed systems. This guidance specifies tooling recommendations for Kafka, RabbitMQ, and SQS/SNS to match your specific event-driven scalability and reliability requirements.

How do I implement CQRS and event sourcing to separate read and write models?

Implement CQRS and event sourcing by mapping services to event streams and setting up an event store for immutable history. This separates write models from scalable read models, enabling reliable replayability and robust data consistency across distributed domains.

What's the best way to handle data consistency and error handling in event-driven systems?

The best way to handle data consistency in event-driven systems is applying sagas for reliable distributed transactions and configuring idempotency with retries. This guidance specifies error handling and governance requirements to ensure robust messaging and prevent data loss.

Does event-driven architecture work for managing schema evolution in asynchronous messaging?

Event-driven architecture supports schema evolution by applying governance requirements and best-practice patterns for asynchronous messaging. This ensures robust distributed systems can evolve message contracts without breaking existing event streams or decoupled microservices.

When should I not use event sourcing and CQRS in my backend architecture?

You should not use event sourcing and CQRS when your backend architecture requires simple synchronous transactions without replayability needs. If distributed data flows and scalable read/write separation are unnecessary, the added complexity of event-driven patterns outweighs their benefits.