SlideShare una empresa de Scribd logo
1 de 32
@SimonAubury
Event Driven
Architecture
Mistakes – I’ve made a few …
linkedin.com/in/simonaubury
@SimonAubury
A tale of confessions from
Simon Aubury
https://en.wikipedia.org/wiki/Montparnasse_derailment
@SimonAubury
Why am I here?
2
I am Simon Aubury
Principal Data Engineer @ ThoughtWorks
@SimonAubury
“
Event-driven architecture (EDA) is a
software architecture paradigm
promoting the production, detection,
consumption of, and reaction to events.
https://en.wikipedia.org/wiki/Event-driven_architecture
@SimonAubury
Let’s help a younger
me
4
@SimonAubury
Event Driven Architecture - a lot has
happened in 25 years
5
@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
6
@SimonAubury
Lesson: it’s hard work
without DDD
DDD 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.
7
@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
8
@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
9
@SimonAubury
Many Meanings of Event Driven
◉ Event Notification
◉ Event-Carried State Transfer
◉ Event-Sourcing
◉ CQRS
10
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
11
@SimonAubury
Lesson: know your events
Modelling - discovery & integration …
Use simple language; solicit everyone's
input.
Develop your system inside out, focus
on the domain
12
@SimonAubury
Messages are not events
13
https://ibm-cloud-architecture.github.io/refarch-eda/concepts/events-versus-messages/
Messages
Events
@SimonAubury
Thinking of events and boundaries
14
https://sarahtaraporewalla.com/architecture/Event-Driven-Architecture-Terminology
Kitchen Waiter Maitre d’ Cashier
Stock
Room
Table 26 orders fish
@SimonAubury
Table
26
Too obsessed with microservices
15
Kitchen
Waiter
Maitre d’
Cashier
Stock
Room
Fish Fish for table 26
Fish
Table 26 orders fish
@SimonAubury
Understand event boundaries
16
https://sarahtaraporewalla.com/architecture/Event-Driven-Architecture-Terminology
Kitchen Waiter Maitre d’ Cashier
Event Stream
Table 26
Stock
Room
FishFish for table 26Fish for table 26 Fish for table 26
@SimonAubury
Choreography vs. orchestration
Which system decides that an action
should be taken?
◉ Orchestration – a manager tells
◉ Choreography (event driven) - a
system takes independent action
17
https://solace.com/blog/microservices-
choreography-vs-orchestration/
@SimonAubury
Lesson: event modelling - it really
happened
An event represents a fact, something
happened; it is immutable and
therefore changes how we think
about our domain model (boundary
between services).
18
@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.
19
@SimonAubury
Now, some Kafka
stuff
20
@SimonAubury
Um, so why a Kafka?
Event-first thinking challenges
◉ Observable, trusted; transactional;
scalable
◉ Processing, view projection, windowing
◉ Scale/fan/map out, fan in/collect
chained transformed events
21
https://www.confluent.io/blog/journey-to-event-
driven-part-1-why-event-first-thinking-changes-
everything/
@SimonAubury
Why the 💕 Kafka in EDA?
◉ Build apps on top of events - easy to out reporting
and ML later (rather than a bunch of ETL)
◉ Kafka plus functional programming plus
immutability plus polyglot persistence
22
@SimonAubury
Event first thinking
◉ Capture facts & behaviour
◉ Represent the real world
◉ Model use cases of how we think
◉ Repeatability & scaling
◉ Common language
23
https://www.confluent.io/blog/journey-to-event-
driven-part-1-why-event-first-thinking-changes-
everything/
@SimonAubury
Lesson: Event must have’s
◉ Name – past tense
◉ Correlation ID
◉ Event production time
◉ Originating system
◉ Event creation system (may be different)
◉ A payload of stuff
24
@SimonAubury
Plan for schema evolution
Support change - data domains
need to evolve at their own
rate … without breaking
consumers.
TL;DR - Use schema registry
25
@SimonAubury
Observability
26
After: add cache for field metadata
5,500 records / sec / table
Before: still slow transform
200 records / sec / table
@SimonAubury
Horizontal scaling … scales
horizontally
27
To scale out, you simply start another instance of your
stream processing application, e.g. on another machine. The
instances of your application will become aware of each other
and automatically begin to share the processing work.
https://www.confluent.io/blog/elastic-scaling-in-kafka-streams/
@SimonAubury
It went wrong – dead letter queue
Avoid DLQ if you can!
Managing a DLQ is highly dependent
on how crucial is that data, how
difficult it is to source it again and who
owns the source of truth.
28
@SimonAubury
Warning: opinions ahead …
◉ A bounded context == a Kafka topic
◉ You don’t need another microservice
framework
◉ You need schemas; mastered by the source
◉ Avoid dead letter queues
◉ Beware of CV-DD
◉ You’ll get things wrong – optimize for change
29
@SimonAubury
What did we learn?
30
@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 your own mistakes …
31
@SimonAubury
Any questions ?
Thanks!
32
@SimonAubury
linkedin.com/in/simonaubury
Presentation template by SlidesCarnival

Más contenido relacionado

La actualidad más candente

Introduction to the Disruptor
Introduction to the DisruptorIntroduction to the Disruptor
Introduction to the DisruptorTrisha Gee
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Guido Schmutz
 
Event Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveEvent Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveJonas Bonér
 
The Case for Chaos
The Case for ChaosThe Case for Chaos
The Case for ChaosBruce Wong
 
What Is Bitcoin And How Does It Work?
What Is Bitcoin And How Does It Work?What Is Bitcoin And How Does It Work?
What Is Bitcoin And How Does It Work?101 Blockchains
 
Building Event-Driven (Micro) Services with Apache Kafka
Building Event-Driven (Micro) Services with Apache KafkaBuilding Event-Driven (Micro) Services with Apache Kafka
Building Event-Driven (Micro) Services with Apache KafkaGuido Schmutz
 
Blockchain - Use Cases
Blockchain - Use CasesBlockchain - Use Cases
Blockchain - Use CasesIBM Sverige
 
Security in the blockchain
Security in the blockchainSecurity in the blockchain
Security in the blockchainBellaj Badr
 
Prd004 office 365_における_id_統合と
Prd004 office 365_における_id_統合とPrd004 office 365_における_id_統合と
Prd004 office 365_における_id_統合とTech Summit 2016
 
Event driven microservices with axon and spring boot-excitingly boring
Event driven microservices with axon and spring boot-excitingly boringEvent driven microservices with axon and spring boot-excitingly boring
Event driven microservices with axon and spring boot-excitingly boringAllard Buijze
 
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Databricks
 
Apache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-PatternApache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-Patternconfluent
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing Inho Kang
 
How to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyHow to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyVMware Tanzu
 
Design Patterns for working with Fast Data in Kafka
Design Patterns for working with Fast Data in KafkaDesign Patterns for working with Fast Data in Kafka
Design Patterns for working with Fast Data in KafkaIan Downard
 
A technical Introduction to Blockchain.
A technical Introduction to Blockchain.A technical Introduction to Blockchain.
A technical Introduction to Blockchain.Dev
 
Financial Event Sourcing at Enterprise Scale
Financial Event Sourcing at Enterprise ScaleFinancial Event Sourcing at Enterprise Scale
Financial Event Sourcing at Enterprise Scaleconfluent
 
Large Scale Lakehouse Implementation Using Structured Streaming
Large Scale Lakehouse Implementation Using Structured StreamingLarge Scale Lakehouse Implementation Using Structured Streaming
Large Scale Lakehouse Implementation Using Structured StreamingDatabricks
 
Prometheus (Prometheus London, 2016)
Prometheus (Prometheus London, 2016)Prometheus (Prometheus London, 2016)
Prometheus (Prometheus London, 2016)Brian Brazil
 

La actualidad más candente (20)

Introduction to the Disruptor
Introduction to the DisruptorIntroduction to the Disruptor
Introduction to the Disruptor
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
 
Event Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveEvent Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspective
 
The Case for Chaos
The Case for ChaosThe Case for Chaos
The Case for Chaos
 
What Is Bitcoin And How Does It Work?
What Is Bitcoin And How Does It Work?What Is Bitcoin And How Does It Work?
What Is Bitcoin And How Does It Work?
 
Building Event-Driven (Micro) Services with Apache Kafka
Building Event-Driven (Micro) Services with Apache KafkaBuilding Event-Driven (Micro) Services with Apache Kafka
Building Event-Driven (Micro) Services with Apache Kafka
 
Blockchain - Use Cases
Blockchain - Use CasesBlockchain - Use Cases
Blockchain - Use Cases
 
Security in the blockchain
Security in the blockchainSecurity in the blockchain
Security in the blockchain
 
Prd004 office 365_における_id_統合と
Prd004 office 365_における_id_統合とPrd004 office 365_における_id_統合と
Prd004 office 365_における_id_統合と
 
Event driven microservices with axon and spring boot-excitingly boring
Event driven microservices with axon and spring boot-excitingly boringEvent driven microservices with axon and spring boot-excitingly boring
Event driven microservices with axon and spring boot-excitingly boring
 
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
 
Apache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-PatternApache Kafka – (Pattern and) Anti-Pattern
Apache Kafka – (Pattern and) Anti-Pattern
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
 
Blockchain+IOT
Blockchain+IOTBlockchain+IOT
Blockchain+IOT
 
How to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor NettyHow to Avoid Common Mistakes When Using Reactor Netty
How to Avoid Common Mistakes When Using Reactor Netty
 
Design Patterns for working with Fast Data in Kafka
Design Patterns for working with Fast Data in KafkaDesign Patterns for working with Fast Data in Kafka
Design Patterns for working with Fast Data in Kafka
 
A technical Introduction to Blockchain.
A technical Introduction to Blockchain.A technical Introduction to Blockchain.
A technical Introduction to Blockchain.
 
Financial Event Sourcing at Enterprise Scale
Financial Event Sourcing at Enterprise ScaleFinancial Event Sourcing at Enterprise Scale
Financial Event Sourcing at Enterprise Scale
 
Large Scale Lakehouse Implementation Using Structured Streaming
Large Scale Lakehouse Implementation Using Structured StreamingLarge Scale Lakehouse Implementation Using Structured Streaming
Large Scale Lakehouse Implementation Using Structured Streaming
 
Prometheus (Prometheus London, 2016)
Prometheus (Prometheus London, 2016)Prometheus (Prometheus London, 2016)
Prometheus (Prometheus London, 2016)
 

Similar a Simon Aubury's Event Driven Architecture Mistakes and Lessons Learned

Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...
Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...
Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...HostedbyConfluent
 
Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aub...
Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aub...Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aub...
Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aub...HostedbyConfluent
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMiki Lombardi
 
Streaming analytics state of the art
Streaming analytics state of the artStreaming analytics state of the art
Streaming analytics state of the artStavros Kontopoulos
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016Tom Boucher
 
Responsible Microservices
Responsible MicroservicesResponsible Microservices
Responsible MicroservicesVMware Tanzu
 
Virtual MS Project Software: EPM Cloud 360
Virtual MS Project Software: EPM Cloud 360Virtual MS Project Software: EPM Cloud 360
Virtual MS Project Software: EPM Cloud 360Groupe SIRIUS
 
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"Daniel Bryant
 
from shadow IT to empowered IT-asanka 2014 08-gartner catalyst
from shadow IT to empowered IT-asanka 2014 08-gartner catalystfrom shadow IT to empowered IT-asanka 2014 08-gartner catalyst
from shadow IT to empowered IT-asanka 2014 08-gartner catalystWSO2
 
From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!
From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!
From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!WSO2
 
Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...
Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...
Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...confluent
 
Situation Normal, FOWA Dublin
Situation Normal, FOWA DublinSituation Normal, FOWA Dublin
Situation Normal, FOWA DublinSimon Wardley
 
EPM Cloud 360
EPM Cloud 360EPM Cloud 360
EPM Cloud 360ggodbout
 
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Adrian Cockcroft
 
HIDDEN GEMS IN PBCS—THE BENEFITS THEY DON’T TELL YOU ABOUT
  HIDDEN GEMS IN PBCS—THE BENEFITS THEY DON’T TELL YOU ABOUT  HIDDEN GEMS IN PBCS—THE BENEFITS THEY DON’T TELL YOU ABOUT
HIDDEN GEMS IN PBCS—THE BENEFITS THEY DON’T TELL YOU ABOUTKyle Goodfriend
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro FrontendMiki Lombardi
 
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAnypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAkshata Sawant
 

Similar a Simon Aubury's Event Driven Architecture Mistakes and Lessons Learned (20)

Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...
Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...
Mistakes - I’ve made a few. Blunders in event-driven architecture | Simon Aub...
 
Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aub...
Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aub...Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aub...
Mistakes - I’ve Made a Few. Blunders in Event-driven Architecture | Simon Aub...
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Streaming analytics state of the art
Streaming analytics state of the artStreaming analytics state of the art
Streaming analytics state of the art
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
 
Responsible Microservices
Responsible MicroservicesResponsible Microservices
Responsible Microservices
 
Virtual MS Project Software: EPM Cloud 360
Virtual MS Project Software: EPM Cloud 360Virtual MS Project Software: EPM Cloud 360
Virtual MS Project Software: EPM Cloud 360
 
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
 
What is this cloud thing?
What is this cloud thing?What is this cloud thing?
What is this cloud thing?
 
from shadow IT to empowered IT-asanka 2014 08-gartner catalyst
from shadow IT to empowered IT-asanka 2014 08-gartner catalystfrom shadow IT to empowered IT-asanka 2014 08-gartner catalyst
from shadow IT to empowered IT-asanka 2014 08-gartner catalyst
 
From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!
From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!
From Shadow IT to Empowered IT: Unshackling Your Developers’ Creativity!
 
Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...
Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...
Event Driven Architecture with a RESTful Microservices Architecture (Kyle Ben...
 
Seminor Documentation
Seminor DocumentationSeminor Documentation
Seminor Documentation
 
Situation Normal, FOWA Dublin
Situation Normal, FOWA DublinSituation Normal, FOWA Dublin
Situation Normal, FOWA Dublin
 
QuSandbox+NVIDIA Rapids
QuSandbox+NVIDIA RapidsQuSandbox+NVIDIA Rapids
QuSandbox+NVIDIA Rapids
 
EPM Cloud 360
EPM Cloud 360EPM Cloud 360
EPM Cloud 360
 
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
 
HIDDEN GEMS IN PBCS—THE BENEFITS THEY DON’T TELL YOU ABOUT
  HIDDEN GEMS IN PBCS—THE BENEFITS THEY DON’T TELL YOU ABOUT  HIDDEN GEMS IN PBCS—THE BENEFITS THEY DON’T TELL YOU ABOUT
HIDDEN GEMS IN PBCS—THE BENEFITS THEY DON’T TELL YOU ABOUT
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
 
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAnypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
 

Más de confluent

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flinkconfluent
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flinkconfluent
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluentconfluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkconfluent
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloudconfluent
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluentconfluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Meshconfluent
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservicesconfluent
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3confluent
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernizationconfluent
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataconfluent
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2confluent
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023confluent
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesisconfluent
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023confluent
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streamsconfluent
 

Más de confluent (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Último

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Último (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Simon Aubury's Event Driven Architecture Mistakes and Lessons Learned

  • 1. @SimonAubury Event Driven Architecture Mistakes – I’ve made a few … linkedin.com/in/simonaubury @SimonAubury A tale of confessions from Simon Aubury https://en.wikipedia.org/wiki/Montparnasse_derailment
  • 2. @SimonAubury Why am I here? 2 I am Simon Aubury Principal Data Engineer @ ThoughtWorks
  • 3. @SimonAubury “ Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events. https://en.wikipedia.org/wiki/Event-driven_architecture
  • 5. @SimonAubury Event Driven Architecture - a lot has happened in 25 years 5
  • 6. @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 6
  • 7. @SimonAubury Lesson: it’s hard work without DDD DDD 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. 7
  • 8. @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 8
  • 9. @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 9
  • 10. @SimonAubury Many Meanings of Event Driven ◉ Event Notification ◉ Event-Carried State Transfer ◉ Event-Sourcing ◉ CQRS 10 https://martinfowler.com/articles/201701-event-driven.html
  • 11. @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 11
  • 12. @SimonAubury Lesson: know your events Modelling - discovery & integration … Use simple language; solicit everyone's input. Develop your system inside out, focus on the domain 12
  • 13. @SimonAubury Messages are not events 13 https://ibm-cloud-architecture.github.io/refarch-eda/concepts/events-versus-messages/ Messages Events
  • 14. @SimonAubury Thinking of events and boundaries 14 https://sarahtaraporewalla.com/architecture/Event-Driven-Architecture-Terminology Kitchen Waiter Maitre d’ Cashier Stock Room Table 26 orders fish
  • 15. @SimonAubury Table 26 Too obsessed with microservices 15 Kitchen Waiter Maitre d’ Cashier Stock Room Fish Fish for table 26 Fish Table 26 orders fish
  • 16. @SimonAubury Understand event boundaries 16 https://sarahtaraporewalla.com/architecture/Event-Driven-Architecture-Terminology Kitchen Waiter Maitre d’ Cashier Event Stream Table 26 Stock Room FishFish for table 26Fish for table 26 Fish for table 26
  • 17. @SimonAubury Choreography vs. orchestration Which system decides that an action should be taken? ◉ Orchestration – a manager tells ◉ Choreography (event driven) - a system takes independent action 17 https://solace.com/blog/microservices- choreography-vs-orchestration/
  • 18. @SimonAubury Lesson: event modelling - it really happened An event represents a fact, something happened; it is immutable and therefore changes how we think about our domain model (boundary between services). 18
  • 19. @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. 19
  • 21. @SimonAubury Um, so why a Kafka? Event-first thinking challenges ◉ Observable, trusted; transactional; scalable ◉ Processing, view projection, windowing ◉ Scale/fan/map out, fan in/collect chained transformed events 21 https://www.confluent.io/blog/journey-to-event- driven-part-1-why-event-first-thinking-changes- everything/
  • 22. @SimonAubury Why the 💕 Kafka in EDA? ◉ Build apps on top of events - easy to out reporting and ML later (rather than a bunch of ETL) ◉ Kafka plus functional programming plus immutability plus polyglot persistence 22
  • 23. @SimonAubury Event first thinking ◉ Capture facts & behaviour ◉ Represent the real world ◉ Model use cases of how we think ◉ Repeatability & scaling ◉ Common language 23 https://www.confluent.io/blog/journey-to-event- driven-part-1-why-event-first-thinking-changes- everything/
  • 24. @SimonAubury Lesson: Event must have’s ◉ Name – past tense ◉ Correlation ID ◉ Event production time ◉ Originating system ◉ Event creation system (may be different) ◉ A payload of stuff 24
  • 25. @SimonAubury Plan for schema evolution Support change - data domains need to evolve at their own rate … without breaking consumers. TL;DR - Use schema registry 25
  • 26. @SimonAubury Observability 26 After: add cache for field metadata 5,500 records / sec / table Before: still slow transform 200 records / sec / table
  • 27. @SimonAubury Horizontal scaling … scales horizontally 27 To scale out, you simply start another instance of your stream processing application, e.g. on another machine. The instances of your application will become aware of each other and automatically begin to share the processing work. https://www.confluent.io/blog/elastic-scaling-in-kafka-streams/
  • 28. @SimonAubury It went wrong – dead letter queue Avoid DLQ if you can! Managing a DLQ is highly dependent on how crucial is that data, how difficult it is to source it again and who owns the source of truth. 28
  • 29. @SimonAubury Warning: opinions ahead … ◉ A bounded context == a Kafka topic ◉ You don’t need another microservice framework ◉ You need schemas; mastered by the source ◉ Avoid dead letter queues ◉ Beware of CV-DD ◉ You’ll get things wrong – optimize for change 29
  • 31. @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 your own mistakes … 31