How to design your messages: Patterns and tradeoffs in Event Driven Architectures Workshop
summary
Compares three concrete message styles—pure messages, embedded messages, envelope (CloudEvents)—and shows code and Docker demos using Kafka and RabbitMQ to illustrate tradeoffs: operability, payload size, evolution and testing cost, and when consumers DDoS the source. Introduces message metadata, maps message ID/correlation ID/causation ID to W3C trace/span concepts and OpenTelemetry span links, and shows practical measures (outbox pattern, gateways, schema/versioning). Recommends starting with envelopes when unsure and gives migration and governance criteria.
AI-written summary · about
chapters (14)
- 0:00Event-driven message design intro
- 1:30Message design in distributed systems
- 8:38Commands vs events in messaging
- 16:46Social media system example
- 27:29Pure style message design
- 34:39Embedded style tradeoffs
- 40:05Envelope pattern for metadata
- 45:12CloudEvents standard benefits
- 51:14Choosing message styles
- 1:02:27Causation IDs for tracing
- 1:14:21Conway's law impact
- 1:21:23Decision framework for styles
- 1:29:51Demo project walkthrough
- 1:53:54Q&A
related talks
54mSo You Want to Build An Event Driven System?
38mEvery Event, Everywhere, All at Once
49mEvent Driven Collaboration
53mMessaging: The fine line between awesome and awful
52mNavigating complexity in event-driven architectures: A domain-driven approach
29mDesigning Microservice Architectures
55mNavigating complexity in event-driven architectures: A domain-driven approach
52mBest Practices in Event-Driven Application Design
