| Event Envelope |
Betriebsmetadaten und Payload trennen |
EventEnvelope |
Event-ID, Trace, Version und Partition Key sind kein
Payload-Detail. |
| Command Message |
Auftrag mit klarem Empfänger |
CommandEnvelope |
Commands können abgelehnt werden und brauchen Zielservice. |
| Publish/Subscribe |
Publisher und Consumer entkoppeln |
InMemoryKafkaBroker |
Billing und Reporting können denselben Strom unabhängig lesen. |
| Consumer Group |
Verarbeitungseinheit mit eigenen Offsets |
ConsumerGroupState |
Mehrere Gruppen lesen unabhängig; innerhalb einer Gruppe wird Arbeit
verteilt. |
| Strategy |
Partitionierung kapseln |
PartitionKeyStrategy |
Partition Key ist eine Architekturentscheidung. |
| Registry |
Akzeptierte Schemata zentralisieren |
EventSchemaRegistry |
Consumer verarbeiten nur bekannte Versionen. |
| Idempotent Consumer |
Duplikate ignorieren |
IdempotencyStore,
BillingProjectionConsumer |
At-least-once kann Nachrichten mehrfach liefern. |
| Dead Letter Channel |
fehlerhafte Events isolieren |
DeadLetterQueue |
kaputte Nachrichten blockieren nicht den gesamten Strom. |
| Projection |
lokales Lesemodell aus Events |
BillingProjection |
Consumer baut eigene Sicht, ohne Publisher-Datenbank zu lesen. |
| Test Double |
Broker-Konzepte ohne Kafka testen |
InMemoryKafkaBroker |
Lern- und Architekturtests laufen JDK-only. |