From defe64525ad72818e8c9f00da45ceeeb3ad77780 Mon Sep 17 00:00:00 2001 From: Benjamin Linnik Date: Sat, 7 Mar 2026 20:24:13 +0100 Subject: [PATCH] feat: Add Event-Driven Architecture semantic anchor Adds EDA as a standalone semantic anchor covering async decoupling via events, publish-subscribe, and message queues. Based on Hohpe/ Woolf's Enterprise Integration Patterns. Distinct from CQRS (read/write separation), Observer (single-process, synchronous), and Event Sourcing (state storage, not communication). --- docs/all-anchors.adoc | 2 + docs/anchors/event-driven-architecture.adoc | 50 +++++++++++++++++++ .../references/catalog.md | 5 ++ 3 files changed, 57 insertions(+) create mode 100644 docs/anchors/event-driven-architecture.adoc diff --git a/docs/all-anchors.adoc b/docs/all-anchors.adoc index 9e99e04..a3de1dd 100644 --- a/docs/all-anchors.adoc +++ b/docs/all-anchors.adoc @@ -113,6 +113,8 @@ include::anchors/clean-architecture.adoc[leveloffset=+2] include::anchors/domain-driven-design.adoc[leveloffset=+2] +include::anchors/event-driven-architecture.adoc[leveloffset=+2] + include::anchors/gom.adoc[leveloffset=+2] include::anchors/hexagonal-architecture.adoc[leveloffset=+2] diff --git a/docs/anchors/event-driven-architecture.adoc b/docs/anchors/event-driven-architecture.adoc new file mode 100644 index 0000000..985637f --- /dev/null +++ b/docs/anchors/event-driven-architecture.adoc @@ -0,0 +1,50 @@ += Event-Driven Architecture +:categories: software-architecture +:roles: software-architect, software-developer, devops-engineer +:proponents: Gregor Hohpe, Bobby Woolf, Martin Fowler +:related: domain-driven-design, hexagonal-architecture, clean-architecture +:tags: eda, events, async, messaging, publish-subscribe, decoupling, eventual-consistency + +[%collapsible] +==== +Also known as:: EDA, Message-Driven Architecture + +[discrete] +== *Core Concepts*: + +Event producers and consumers:: Components communicate by emitting and reacting to events rather than direct calls + +Publish-subscribe:: Producers publish events without knowing which consumers will process them + +Asynchronous decoupling:: Sender and receiver operate independently in time; no blocking request-response + +Message queue:: Intermediary that buffers events between producers and consumers (SQS, RabbitMQ, Kafka) + +At-least-once delivery:: Most messaging systems guarantee delivery but may deliver duplicates, requiring idempotent consumers + +Eventual consistency:: System state converges over time rather than being immediately consistent after each operation + +Event notification:: Lightweight event signals that something happened; consumers decide whether to act + +Event-carried state transfer:: Events carry enough data for consumers to process without calling back to the producer + +Choreography vs. orchestration:: Events can trigger distributed workflows implicitly (choreography) or via a central coordinator (orchestration) + + +Key Proponents:: Gregor Hohpe, Bobby Woolf ("Enterprise Integration Patterns", 2003), Martin Fowler ("What do you mean by Event-Driven?", 2017) + +[discrete] +== *When to Use*: + +* Systems requiring loose coupling between components +* Workloads with asynchronous processing pipelines +* Architectures that need independent scaling of producers and consumers +* Distributed systems where components must evolve independently + +[discrete] +== *Related Anchors*: + +* <> - Domain events are a DDD building block +* <> - Message queues as driven adapters +* <> - Events cross architectural boundaries via interfaces +==== diff --git a/skill/semantic-anchor-translator/references/catalog.md b/skill/semantic-anchor-translator/references/catalog.md index 3454d58..d635324 100644 --- a/skill/semantic-anchor-translator/references/catalog.md +++ b/skill/semantic-anchor-translator/references/catalog.md @@ -40,6 +40,11 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors - **Proponents:** Eric Evans - **Core:** Ubiquitous language, bounded contexts, aggregates, entities, value objects +### Event-Driven Architecture +- **Also known as:** EDA, Message-Driven Architecture +- **Proponents:** Gregor Hohpe, Bobby Woolf, Martin Fowler +- **Core:** Async decoupling via events, publish-subscribe, event producers/consumers, eventual consistency, idempotency + ### arc42 Architecture Documentation - **Proponents:** Gernot Starke, Peter Hruschka - **Core:** 12-section template for documenting software architecture