Skip to content

Commit 27a9954

Browse files
authored
Merge pull request #143 from Nantero1/add-anchor-event-driven-architecture
feat: Add Event-Driven Architecture semantic anchor
2 parents 5e690f4 + defe645 commit 27a9954

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed

docs/all-anchors.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ include::anchors/clean-architecture.adoc[leveloffset=+2]
113113

114114
include::anchors/domain-driven-design.adoc[leveloffset=+2]
115115

116+
include::anchors/event-driven-architecture.adoc[leveloffset=+2]
117+
116118
include::anchors/gom.adoc[leveloffset=+2]
117119

118120
include::anchors/hexagonal-architecture.adoc[leveloffset=+2]
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
= Event-Driven Architecture
2+
:categories: software-architecture
3+
:roles: software-architect, software-developer, devops-engineer
4+
:proponents: Gregor Hohpe, Bobby Woolf, Martin Fowler
5+
:related: domain-driven-design, hexagonal-architecture, clean-architecture
6+
:tags: eda, events, async, messaging, publish-subscribe, decoupling, eventual-consistency
7+
8+
[%collapsible]
9+
====
10+
Also known as:: EDA, Message-Driven Architecture
11+
12+
[discrete]
13+
== *Core Concepts*:
14+
15+
Event producers and consumers:: Components communicate by emitting and reacting to events rather than direct calls
16+
17+
Publish-subscribe:: Producers publish events without knowing which consumers will process them
18+
19+
Asynchronous decoupling:: Sender and receiver operate independently in time; no blocking request-response
20+
21+
Message queue:: Intermediary that buffers events between producers and consumers (SQS, RabbitMQ, Kafka)
22+
23+
At-least-once delivery:: Most messaging systems guarantee delivery but may deliver duplicates, requiring idempotent consumers
24+
25+
Eventual consistency:: System state converges over time rather than being immediately consistent after each operation
26+
27+
Event notification:: Lightweight event signals that something happened; consumers decide whether to act
28+
29+
Event-carried state transfer:: Events carry enough data for consumers to process without calling back to the producer
30+
31+
Choreography vs. orchestration:: Events can trigger distributed workflows implicitly (choreography) or via a central coordinator (orchestration)
32+
33+
34+
Key Proponents:: Gregor Hohpe, Bobby Woolf ("Enterprise Integration Patterns", 2003), Martin Fowler ("What do you mean by Event-Driven?", 2017)
35+
36+
[discrete]
37+
== *When to Use*:
38+
39+
* Systems requiring loose coupling between components
40+
* Workloads with asynchronous processing pipelines
41+
* Architectures that need independent scaling of producers and consumers
42+
* Distributed systems where components must evolve independently
43+
44+
[discrete]
45+
== *Related Anchors*:
46+
47+
* <<domain-driven-design,Domain-Driven Design>> - Domain events are a DDD building block
48+
* <<hexagonal-architecture,Hexagonal Architecture>> - Message queues as driven adapters
49+
* <<clean-architecture,Clean Architecture>> - Events cross architectural boundaries via interfaces
50+
====

skill/semantic-anchor-translator/references/catalog.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors
4040
- **Proponents:** Eric Evans
4141
- **Core:** Ubiquitous language, bounded contexts, aggregates, entities, value objects
4242

43+
### Event-Driven Architecture
44+
- **Also known as:** EDA, Message-Driven Architecture
45+
- **Proponents:** Gregor Hohpe, Bobby Woolf, Martin Fowler
46+
- **Core:** Async decoupling via events, publish-subscribe, event producers/consumers, eventual consistency, idempotency
47+
4348
### arc42 Architecture Documentation
4449
- **Proponents:** Gernot Starke, Peter Hruschka
4550
- **Core:** 12-section template for documenting software architecture

0 commit comments

Comments
 (0)