SlideShare a Scribd company logo
@SimonAubury
Event Driven Architecture
Mistakes – I’ve made a few …
A tale of confessions from Simon Aubury
@SimonAubury
Why am I here?
2
I am Simon Aubury
Principal Data Engineer @ ThoughtWorks
@SimonAubury
Let’s help a younger
me
3
@SimonAubury
“
Event-driven architecture (EDA) is a software
architecture paradigm promoting the production ..
consumption and reaction to events.
https://en.wikipedia.org/wiki/Event-driven_architecture
@SimonAubury
Mistake #1
The “right size” for a
Microservice ..
5
@SimonAubury
Thinking of events and boundaries
6
BBQ
Scout
Cashier
Stock
Room
Server
@SimonAubury
Written in Scala
Too obsessed with microservices
7
Single repository
Team fed by 2 pizzas
Written in Java
Dev-ops for 6 services
Cashier
Stock
Room
Server
BBQ
Scout
@SimonAubury
O
rder 26
Boundary between services
8
Cashier
Stock
Room
Server
2 Sausages with sauce
Sausage for order 26
Sausages
2 Sausages with
sauce & onion
BBQ
Scout
@SimonAubury
Understand event boundaries
9
Scout Server Cashier
Event Stream
Order for #26
Stock
Room
2 Sausages
2 Sausages for
customer #26
2 Sausages 2 Sausages for
customer #26
BBQ
@SimonAubury
Event Granularity
◉ Context boundaries
○ How big is a microservice?
◉ Record events as received
○ Avoid early splitting
◉ Capture broad categories
○ Producers shouldn’t discard
10
@SimonAubury
Lesson: the rules are different
within vs across boundaries
Favour asynchrony and eventual
consistency at context boundaries,
embrace the productive coupling of
synchronous within the boundary
11
@SimonAubury
Mistake #2
Messages != Events
12
@SimonAubury
Messages are not events
13
“Charge Jane’s credit card $20”
“Send an email to bob@example.com”
Message
“Jane ordered a burger”
“Bob viewed the new customer web page”
Event
@SimonAubury
Why events?
14
Messages
◉ Persisted until consumed
◉ Targeted to the entity
◉ Couple producers and
consumers
Events
◉ Re-playable stream history
◉ Consume historic events
◉ Loose coupling consumers
& producer
Messages in Job Queue
Events in an Event Log
@SimonAubury
Lesson: Beware the passive aggressive events
An event shouldn’t be used as a passive-aggressive
command.
It’s a “bad smell” if a source system expects the
recipient to carry out an action yet styles the
message as an event instead.
15
@SimonAubury
Mistake #3
Event notification != Event sourcing
16
@SimonAubury
Choreography vs. orchestration
Which system decides that an action
should be taken?
◉ Orchestration – system that will perform
once told to do it by another system
◉ Choreography (event driven) - a system
takes independent action
17
@SimonAubury
Many Meanings of Event Driven
◉ Event Notification
◉ Event-Carried State Transfer
◉ Event-Sourcing
◉ Command Query Responsibility
Segregation (CQRS)
18
https://martinfowler.com/articles/201701-event-driven.html
@SimonAubury
Lesson: don’t over engineer
Pick an event driven approach – and
be consistent and simple.
Don’t over-engineer an eventing
solution using Event-Sourcing/CQRS
19
@SimonAubury
Mistake #4
Building a message bus in
Kafka
20
@SimonAubury
History vs State
21
OCR Scan Start
Document found
Customer contact section identified
Name extracted with 98% confidence
Property land size found on page 4
OCR jam while scanning page 5
{"Cust": "Bob", "Property": "House"}
Document Scanner
@SimonAubury
History vs State
22
Projection of events
into local state store
Event notification:
Document scanned
OCR Scan Start
Document found
Customer contact section identified
Name extracted with 98% confidence
Property land size found on page 4
OCR jam while scanning page 5
{"Cust": "Bob", "Property": "House"}
Document Scanner
@SimonAubury
Lesson: Don’t build a message bus in Kafka
It’s a slippery slope – remember to produce & be
reactive to events … and not messages.
23
@SimonAubury
Mistake #5
Producers are not children
24
@SimonAubury
Producers are not children
◉ Basic rules for events
○ EDA guard-rails
○ Data Governance & Security
○ Good citizen rules
○ Naming scheme for topics
◉ Support & training
○ Opinioned framework approach
25
@SimonAubury
Cross bounded context …
26
Direct API Access Event Streaming
Coupled
API’s
Schema
required
@SimonAubury
Plan for schema evolution
Support change - data domains
need to evolve at their own
rate … without breaking
consumers.
TL;DR - Use schema registry
27
@SimonAubury
There is a process to find the
events that matter
◉ Use everyone to identify the
events that matter
◉ Understand the systems
◉ Start with broad categories
28
@SimonAubury
Lesson: EDA guardrails
Event must have’s
◉ Name – past tense
◉ Correlation ID
◉ Event production time
◉ Originating system
◉ Event creation system (may be different)
◉ A payload of stuff
29
@SimonAubury
Mistake #6
Don’t reinvent the EDA wheel
30
@SimonAubury
Event first thinking
◉ Capture facts & behaviour
◉ Represent the real world
◉ Model use cases of how we think
◉ Repeatability & scaling
◉ Common language
31
https://www.confluent.io/blog/journey-to-event-
driven-part-1-why-event-first-thinking-changes-
everything/
@SimonAubury
DDD - existing practices
◉ Problem modelling
○ Contexts - delineate boundary of consistency
◉ Separate our business logic from other
application concerns
◉ Reduce complexity
○ More effective software delivery
◉ Communicate better / A common language
32
@SimonAubury
Lesson: know your events
Modelling - discovery & integration …
Use simple language; solicit everyone's
input.
Develop your system inside out, focus
on the domain
33
@SimonAubury
Lesson: it’s hard work without DDD
Domain Driven Design gives us the tools to define
our bounded contexts, which give us our services.
Modelling the domain helps us identify the events
that are important to the domain.
34
@SimonAubury 35
What did I learn?
◉ Messages != Events
◉ Rules are different within vs across boundaries
◉ Don’t over engineer
◉ Don’t build a message bus in Kafka
◉ EDA guardrails
◉ Know your events
@SimonAubury
Lesson: start .. now
Event Driven Architecture adoption should start now.
Starting the first leads to the next transformational
opportunity. Shift towards EDA is driven by increasing
demands and heightened expectations and system
modernisation
Make (and share) your own mistakes …
36
@SimonAubury
Any questions ?
Thanks!
37
@SimonAubury
linkedin.com/in/simonaubury
Presentation template by SlidesCarnival

More Related Content

PPTX
Flowable Business Processing from Kafka Events
PDF
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red Hat
PDF
Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...
PDF
Event-driven Architectures with Spring Cloud - SpringOne Tour Dallas
PPTX
Async API and Solace: Enabling the Event-Driven Future
PDF
Using Kafka: Anatomy of the Flowable event registry
PPTX
Defcon 27 - Exploiting IAM in GCP
PPTX
Modelling event data in look ml
Flowable Business Processing from Kafka Events
Speed-Up Kafka Delivery with AsyncAPI & Microcks | Hugo Guerrero, Red Hat
Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...
Event-driven Architectures with Spring Cloud - SpringOne Tour Dallas
Async API and Solace: Enabling the Event-Driven Future
Using Kafka: Anatomy of the Flowable event registry
Defcon 27 - Exploiting IAM in GCP
Modelling event data in look ml

What's hot (20)

PPTX
Communication in a Microservice Architecture
PDF
Kafka Summit NYC 2017 - The Rise of the Streaming Platform
PPTX
Real time data quality on Flink
PDF
TBD Data Governance | David Araujo and Michael Agnich, Confluent
PDF
Camel k Taiwan Java user group
PDF
Events, Picos, and Microservices
PDF
Lighning Talk: Event-Driven architecture for microservices
PDF
Serverless integration anatomy
PDF
OpenWhisk - A platform for cloud native, serverless, event driven apps
PPTX
Shit happens – achieve extensibility, modularity and loosely coupled architec...
PDF
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
PDF
Building a Real-Time Forecasting Engine with Scala and Akka
PPTX
Serverless Event-Driven Programming: Are We Ready for the Paradigm Shift?
PDF
MongoDB World 2018: Data Models for Storing Sophisticated Customer Journeys i...
PDF
What is Apache Kafka, and What is an Event Streaming Platform?
PDF
Agile integration cloud native developement
PPTX
Serverless Architecture at iRobot
PPTX
Introduction to Azure Event Grid
PPTX
Logic Apps & BizTalk Server 2016
PDF
Jay Kreps | Kafka Summit 2018 Keynote (Apache Kafka and Event-Oriented Archit...
Communication in a Microservice Architecture
Kafka Summit NYC 2017 - The Rise of the Streaming Platform
Real time data quality on Flink
TBD Data Governance | David Araujo and Michael Agnich, Confluent
Camel k Taiwan Java user group
Events, Picos, and Microservices
Lighning Talk: Event-Driven architecture for microservices
Serverless integration anatomy
OpenWhisk - A platform for cloud native, serverless, event driven apps
Shit happens – achieve extensibility, modularity and loosely coupled architec...
Altitude San Francisco 2018: Scale and Stability at the Edge with 1.4 Billion...
Building a Real-Time Forecasting Engine with Scala and Akka
Serverless Event-Driven Programming: Are We Ready for the Paradigm Shift?
MongoDB World 2018: Data Models for Storing Sophisticated Customer Journeys i...
What is Apache Kafka, and What is an Event Streaming Platform?
Agile integration cloud native developement
Serverless Architecture at iRobot
Introduction to Azure Event Grid
Logic Apps & BizTalk Server 2016
Jay Kreps | Kafka Summit 2018 Keynote (Apache Kafka and Event-Oriented Archit...
Ad

Similar to Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aubury, ThoughtWorks Australia (20)

PPTX
Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...
PDF
Event Driven Architecture - Mistakes, I've made a few
PDF
Event Driven Architecture: Mistakes, I've made a few...
PDF
Architecting the Future - Event-Driven Paradigms in Software Development.pdf
PPTX
Lessons learned from applying Event sourcing and CQRS
PDF
Business Event Driven Architecture & Governance in Action
PDF
Deconstructing Monoliths with Domain Driven Design
PDF
Event storage in a distributed system
PPT
Optimizing Your SOA with Event Processing
PPTX
Udi Dahan: Event Sourcing Keynote @ DDD EU
KEY
Event Driven Architecture
PPTX
Event driven architecture
PPTX
Crack the Domain with Event Storming By Vivek
PPTX
Event Driven Architectures - Net Conf UY 2018
PPT
Event Driven Architecture (EDA), November 2, 2006
PDF
How Events Are Reshaping Modern Systems
PPTX
Event Driven Architecture – Enabling Microservices
PDF
Techorama Event Based Architecture Chris van Zadel.pdf
PPTX
TechDays 2010 Portugal - Event Driven Architectures - 16x9
PPTX
Eda on the azure services platform
Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...
Event Driven Architecture - Mistakes, I've made a few
Event Driven Architecture: Mistakes, I've made a few...
Architecting the Future - Event-Driven Paradigms in Software Development.pdf
Lessons learned from applying Event sourcing and CQRS
Business Event Driven Architecture & Governance in Action
Deconstructing Monoliths with Domain Driven Design
Event storage in a distributed system
Optimizing Your SOA with Event Processing
Udi Dahan: Event Sourcing Keynote @ DDD EU
Event Driven Architecture
Event driven architecture
Crack the Domain with Event Storming By Vivek
Event Driven Architectures - Net Conf UY 2018
Event Driven Architecture (EDA), November 2, 2006
How Events Are Reshaping Modern Systems
Event Driven Architecture – Enabling Microservices
Techorama Event Based Architecture Chris van Zadel.pdf
TechDays 2010 Portugal - Event Driven Architectures - 16x9
Eda on the azure services platform
Ad

More from HostedbyConfluent (20)

PDF
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
PDF
Renaming a Kafka Topic | Kafka Summit London
PDF
Evolution of NRT Data Ingestion Pipeline at Trendyol
PDF
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
PDF
Exactly-once Stream Processing with Arroyo and Kafka
PDF
Fish Plays Pokemon | Kafka Summit London
PDF
Tiered Storage 101 | Kafla Summit London
PDF
Building a Self-Service Stream Processing Portal: How And Why
PDF
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
PDF
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
PDF
Navigating Private Network Connectivity Options for Kafka Clusters
PDF
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
PDF
Explaining How Real-Time GenAI Works in a Noisy Pub
PDF
TL;DR Kafka Metrics | Kafka Summit London
PDF
A Window Into Your Kafka Streams Tasks | KSL
PDF
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
PDF
Data Contracts Management: Schema Registry and Beyond
PDF
Code-First Approach: Crafting Efficient Flink Apps
PDF
Debezium vs. the World: An Overview of the CDC Ecosystem
PDF
Beyond Tiered Storage: Serverless Kafka with No Local Disks
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Renaming a Kafka Topic | Kafka Summit London
Evolution of NRT Data Ingestion Pipeline at Trendyol
Ensuring Kafka Service Resilience: A Dive into Health-Checking Techniques
Exactly-once Stream Processing with Arroyo and Kafka
Fish Plays Pokemon | Kafka Summit London
Tiered Storage 101 | Kafla Summit London
Building a Self-Service Stream Processing Portal: How And Why
From the Trenches: Improving Kafka Connect Source Connector Ingestion from 7 ...
Future with Zero Down-Time: End-to-end Resiliency with Chaos Engineering and ...
Navigating Private Network Connectivity Options for Kafka Clusters
Apache Flink: Building a Company-wide Self-service Streaming Data Platform
Explaining How Real-Time GenAI Works in a Noisy Pub
TL;DR Kafka Metrics | Kafka Summit London
A Window Into Your Kafka Streams Tasks | KSL
Mastering Kafka Producer Configs: A Guide to Optimizing Performance
Data Contracts Management: Schema Registry and Beyond
Code-First Approach: Crafting Efficient Flink Apps
Debezium vs. the World: An Overview of the CDC Ecosystem
Beyond Tiered Storage: Serverless Kafka with No Local Disks

Recently uploaded (20)

PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Getting Started with Data Integration: FME Form 101
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Machine learning based COVID-19 study performance prediction
PPTX
1. Introduction to Computer Programming.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
August Patch Tuesday
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Mushroom cultivation and it's methods.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Empathic Computing: Creating Shared Understanding
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
Univ-Connecticut-ChatGPT-Presentaion.pdf
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Getting Started with Data Integration: FME Form 101
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Heart disease approach using modified random forest and particle swarm optimi...
Machine learning based COVID-19 study performance prediction
1. Introduction to Computer Programming.pptx
Spectroscopy.pptx food analysis technology
August Patch Tuesday
Programs and apps: productivity, graphics, security and other tools
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Mushroom cultivation and it's methods.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Empathic Computing: Creating Shared Understanding
gpt5_lecture_notes_comprehensive_20250812015547.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
SOPHOS-XG Firewall Administrator PPT.pptx
Spectral efficient network and resource selection model in 5G networks

Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aubury, ThoughtWorks Australia