SlideShare a Scribd company logo
Andrew Roberts
October 17, 2019
Introduction to
Event-Driven Architecture
Rapid Fire
EDA Use Cases
©Solace | Proprietary & Confidential
2
• Using EDA helps manufacturers blur
the lines between their IT and
operational technology (OT)
• In this industry, EDA helps move IoT
device data between buildings,
assembly lines, fleets, and containers
• Technical problems faced:
– large connection count, fan-in scenario
– processing data streams
– command & control
Digital Manufacturing
©Solace | Proprietary & Confidential
3
Financial Services
• Financial services companies use EDA to
power
– OMS and Trading Platforms
– FX Trading
– Payment Processing
– Market Data Distribution
• Technical problems faced:
– beating the latency of your competitors
– extreme messagevolumes
(10s of billions+ a day)
– need zero messageloss guarantees
– cutting network costs
©Solace | Proprietary & Confidential
4
• In the Gaming and Gambling industry, EDAs
are used to power
– Online Poker & Gaming
– Activity Tracking & Fraud Detection
– Race/Sports Betting
• Technical problems faced:
– extremely spikey message volumes, e.g. receiving a
wave of bets right before a horse race starts
– need zero messageloss guarantees for high value
messages
– need to be able to push out odds/rates in real-time
Gaming and Gambling
©Solace | Proprietary & Confidential
5
Retail
©Solace | Proprietary & Confidential
6
• EDAs help retailers handle:
– omnichannel inventory management
– customer support
– online stores
– personalized rewards programs
• Technical problems faced:
– need to guarantee that inventory
updates are processed in order, with zero
messageloss and no duplicates
– maintaining a globally accurate inventory
count across distributed applications
Government
• EDAs help governments:
–share information across agencies
–aggregate sensor and surveillance data
• Technical problems faced:
–large connection count, fan-in scenario
–processing data streams
–needing to provide Data-as-a-Service
across department silos
©Solace | Proprietary & Confidential
7
You’ve seen how EDAs are
used, so I get to quiz you:
What’s EDA?
©Solace | Proprietary & Confidential
8
What’s Event-Driven Architecture?
Event-Driven Architecture (EDA) is a design paradigm in which a
software component executes in response to receiving one or
more event notifications. EDA is more loosely coupled than the
client/server paradigm because the component that sends the
notification doesn’t know the identity of the receiving
components at the time of compiling.
Reference:
https://www.gartner.com/it-glossary/eda-event-driven-architecture
©Solace | Proprietary & Confidential
9
Unpacking Gartner’s definition of “Event-Driven Architecture” – 1/2
• “Event-driven architecture (EDA) is a design paradigm in which
a software component executes in response to receiving one or
more event notifications …
– event: “a significant change in state”
• (1) CAREFUL! State changes don’t have to be significant to be considered an event.
• (2) state != database
– event notification: a notification that there has been a change in state
©Solace | Proprietary & Confidential
10
Unpacking Gartner’s definition of “Event-Driven Architecture” – 2/2
• … EDA is more loosely coupled than the client/server paradigm
because the component that sends the notification doesn’t
know the identity of the receiving components at the time of
compiling."
– client/server paradigm: synchronous REST-driven request/reply
communication between a client, i.e. a web app, and a server
• (1) the very name tells you that this paradigm was made for the web
• (2) it seems like Gartner is telling us people are using this pattern outside the web
©Solace | Proprietary & Confidential
11
Let’s try to make this more relatable…
©Solace | Proprietary & Confidential
12
• Fundamentals
–Rapid Fire Use Cases ✅
–Intro to EDA ✅
–Intro to Messaging
• Demos + Hands On!
• Networking / Q&A
Tonight’s agenda
©Solace | Proprietary & Confidential
13
Intro to Messaging
©Solace | Proprietary & Confidential
14
How can my applicationsshare state changes with each other?
©Solace | Proprietary & Confidential
15
App A App B
?EVENT
EVENT
EVENT
Producer Consumer
? ? ?
How can App A tell App B that its
state has changed?
… Messaging!
©Solace | Proprietary & Confidential
16
App A App B
EVENT
EVENT
EVENT
Producer Consumer
Unless you’ve used messaging before, you probably associate inter
microservice communication with synchronous HTTP requests and replies
©Solace | Proprietary & Confidential
17
AppA
App B
Request Reply
Request/Reply Maybe you’ve worked with
Kubernetes before
Or even with a service mesh?
Did you know messages can be sent using communication patterns
other than request/reply?
©Solace | Proprietary & Confidential
18
AppA
App B
Request Reply
Request/Reply
Publish/SubscribeGuaranteed
Point-to-Point
Guaranteed
Request/Reply
Point-to-Point w/
Non-Exclusive
Consumption
Intro to Messaging
©Solace | Proprietary & Confidential
19
Jonathan Schabowsky - Senior Architect
REST vs Messaging for Microservices - Which One Is Best?
https://solace.com/blog/experience-awesomeness-event-driven-microservices/
A blog post written by my more senior colleague was very helpful to me
when I first joined Solace, so I want to walk through some sections from it.
Read the article in its entirety after tonight’s talk while everything’s still fresh
in your head, it’ll be worth it!
REST vs Messaging for Microservices - Which One Is Best?
“Representational State Transfer (REST) was defined by Roy Fielding in his
2000 PhD dissertation entitled “Architectural Styles and the Design of
Network-based Software Architectures”.
©Solace | Proprietary & Confidential
20
Dr. Fielding was a part of the process of defining HTTP, and was called upon
time and again to defend the design choices of the web. Through his work
on HTTP, he distilled his model into a core set of principles, properties and
constraints, now called REST …”
Origin of REST
REST vs Messaging for Microservices - Which One Is Best?
• “… Why is that important? It is my belief that we owe a great debt of
gratitude to Dr. Fielding. RESTful interactions have become vital to
enterprise computing as it enables many APIs on the web today.”
• With that said, lets define what problems REST solves best:
– Synchronous Request/Reply–HTTP (the network protocol on which REST is transported) itself is a
request/response protocol, so REST is a great fit for request/reply interactions.
– Publicly Facing APIs – Since HTTP is a de facto transport standard thanks to the work of the IETF,
the transport layer of the APIs created using REST are interoperable with every programming
language. Additionally, the messagepayload can be easily documented using tools such as Swagger
(OpenAPI Specification). And due to the wide range of security threats present on the internet, the
security ecosystem for REST is robust, from firewalls to OAUTH (Authentication/Authorization). ”
©Solace | Proprietary & Confidential
21
REST vs Messaging for Microservices - Which One Is Best?
“Due to the popularity of RESTful services today, I see many companies
falling into the trap of using REST as an “all-in-one” tool...
©Solace | Proprietary & Confidential
22
REST vs Messaging for Microservices - Which One Is Best?
“… Certainly, some of this popularity is due to the power REST provides
based on its own merits. Developers are also used to designing
applications with synchronous request/reply since APIs and Databases have
trained developers to invoke a method and expect an immediate
response.”
So when you design with REST, what happens if your service *does not*
produce an immediate response?
©Solace | Proprietary & Confidential
23
So when you design with REST, what happens if your
service *does not* produce an immediate response?
©Solace | Proprietary & Confidential
24
Orchestration w/ callbacks
So when you design with REST, what happens if your
service *does not* produce an immediate response?
©Solace | Proprietary & Confidential
25
Daisy chaining
So when you design with REST, what happens if your
service *does not* produce an immediate response?
©Solace | Proprietary & Confidential
26
Polling
REST vs Messaging for Microservices - Which One Is Best?
“… REST and synchronous patterns have negative consequences that apply
primarily to the communication between microservice within the
enterprise and that in some cases are at odds with the principles of proper
microservice architecture:
(1)Tight Coupling
(2)Blocking
(3)Error Handling
©Solace | Proprietary & Confidential
27
Tight Coupling
©Solace | Proprietary & Confidential
29
• receivePayment()
• updateInventory()
• addToOrderHistory()
• runAnalyticsModel1()
• runAnalyticsModel2()
• ..
• runAnalyticsModelN()
• ship()
Purchase Item Service
For every new service you add,
dev teams will have to update
the Purchase Item Service.
They’ll have to make sure all its
unit tests pass, coordinate a
production deployment, blah
blah blah blah blah
Blocking
©Solace | Proprietary & Confidential
31
your RESTful services
await deepThought()
When invoking a RESTful service, your service is blocked waiting for a response
Blocking
©Solace | Proprietary & Confidential
32
50 minutes laterA dabbing synchronous
microservice 
This is how synchronousmicroservices do laundry
Error Handling
©Solace | Proprietary & Confidential
34
Maybe you can pull this off on your own
using a finite-state machine
But that sounds hard.
• What if your application
reaches a state that is not
explicitly handled? BUG.
• Unit tests
• Bloated code
• Violates principal of single
purpose
REST vs Messaging for Microservices - Which One Is Best?
“The solution to many of the shortcomings associated with
RESTful/synchronous interactions is to combine the principles of event-
driven architecture with microservices.
Event Driven Microservices (EDM) are inherently asynchronous and are
notified when it is time to perform work.”
©Solace | Proprietary & Confidential
35
REST vs Messaging for Microservices - Which One Is Best?
“The benefits of messaging for event-driven microservices are many and
varied:
• Loose Coupling
• Non-Blocking
• Simple to Scale
• Greater Resiliency and Error Handling
©Solace | Proprietary & Confidential
36
Loose Coupling
©Solace | Proprietary & Confidential
37
According to Gartner, event brokers “are middleware
products that are used to facilitate, mediate and enrich the
interactionsof sources and handlersin event-driven
computing.”
“Event-driven architectures (EDA) is inherently
intermediated.Therefore, the intermediatingrole of event
brokering is a definitionalpart of EDA. All implementations
of event-driven applicationsmust use some technology in
the role of an event broker.”
Non-Blocking
©Solace | Proprietary & Confidential
38
*BEEP*
This is how asynchronousmicroservices do laundry
Simple to Scale
©Solace | Proprietary & Confidential
39
Non-Exclusive Consumption
…
Greater Resiliency and Error Handling
©Solace | Proprietary & Confidential
40
AppA App B
Guaranteed Delivery
EVENT
Intro to Messaging – Moral of the story
©Solace | Proprietary & Confidential
41
Embrace Eventual Consistency
“Eventual consistency is the idea that consistency will occur in the future, and it means accepting that
things may be out of sync for some time. It’s a pattern and concept that lets developers avoid using
nasty XA transactions. It’s the job of the eventing/messaging platform to ensure that these domain
change events are never lost before being appropriately handled by a service and acknowledged.
Some think the only benefit of eventual consistency is performance, but the real advantage is the
decoupling of the microservices since individual services are merely acting upon events that they
are interested in.”
Marc DiPasquale — Developer Advocate
Considerationsfor Developers BuildingEvent-Driven Microservices
https://solace.com/blog/considerations-developers-building-event-driven-microservices/
Let’s think how we can improve Amazon’s service
©Solace | Proprietary & Confidential
42
• receivePayment()
• updateInventory()
• addToOrderHistory()
• runAnalyticsModel1()
• runAnalyticsModel2()
• ..
• runAnalyticsModelN()
• ship()
Purchase Item Service
• Fundamentals
–Rapid Fire Use Cases ✅
–Intro to EDA ✅
–Intro to Messaging ✅
• Demos + Hands On!
• Networking / Q&A
Tonight’s agenda
©Solace | Proprietary & Confidential
43
Demo + Hands On!
©Solace | Proprietary & Confidential
44
©Solace | Proprietary & Confidential
45
©Solace | Proprietary & Confidential
46
Check out the code here
• https://github.com/solacese/romo-robot
©Solace | Proprietary & Confidential
47
• Fundamentals
–Rapid Fire Use Cases ✅
–Intro to EDA ✅
–Intro to Messaging ✅
• Demos + Hands On! ✅
• Networking / Q&A
Tonight’s agenda
©Solace | Proprietary & Confidential
48
Networking / Q&A
©Solace | Proprietary & Confidential
49
Please take our survey!
Scan the QR code or navigate to the link
©Solace | Proprietary & Confidential
50
http://bit.ly/Solaceworkshopnyc
References – Blog posts
©Solace | Proprietary & Confidential
51
• Event-Driven Architecture (EDA) - Gartner IT Glossary
https://www.gartner.com/it-glossary/eda-event-driven-architecture
• REST vs Messaging for Microservices - Which One Is Best?
https://solace.com/blog/experience-awesomeness-event-driven-microservices/
• Considerationsfor Developers BuildingEvent-Driven Microservices
https://solace.com/blog/considerations-developers-building-event-driven-microservices/
References – Messaging basics
©Solace | Proprietary & Confidential
52
• PubSub+ Concept Maps
https://docs.solace.com/PubSub-ConceptMaps.htm
• PubSub+ Event and Messaging Basics
https://docs.solace.com/PubSub-Basics/Basics.htm
• Messaging
https://docs.solace.com/PubSub-Basics/Core-Concepts-Messaging.htm
• Message Delivery Modes
https://docs.solace.com/PubSub-Basics/Core-Concepts-Message-Delivery-Modes.htm
• Message Models
https://docs.solace.com/PubSub-Basics/Core-Concepts-Message-Models.htm

More Related Content

What's hot (20)

PDF
Event Driven Architecture
Lourens Naudé
 
PPTX
Event-driven architecture
Andrew Easter
 
KEY
Event Driven Architecture
Chris Patterson
 
PDF
Event Driven Architecture (EDA) Reference Architecture
Bob Rhubart
 
PPTX
Microservices Architecture - Bangkok 2018
Araf Karsh Hamid
 
PDF
Microservice Architecture
Nguyen Tung
 
PDF
App Modernization
PT Datacomm Diangraha
 
PPTX
Azure Application Modernization
Karina Matos
 
PPTX
Introduction to Microservices
Roger van de Kimmenade
 
PDF
Combining Logs, Metrics, and Traces for Unified Observability
Elasticsearch
 
PDF
When NOT to use Apache Kafka?
Kai Wähner
 
PPTX
.conf Go 2022 - Observability Session
Splunk
 
PDF
Event Storming and Saga
Araf Karsh Hamid
 
PDF
Observability & Datadog
JamesAnderson599331
 
PDF
Understanding MicroSERVICE Architecture with Java & Spring Boot
Kashif Ali Siddiqui
 
PPTX
Event-driven microservices
Andrew Schofield
 
PPTX
Data Observability.pptx
SonaSamad1
 
PDF
Introducing Databricks Delta
Databricks
 
PPTX
Event Driven Microservices architecture
NikhilBarthwal4
 
PDF
Building Event Driven Systems
WSO2
 
Event Driven Architecture
Lourens Naudé
 
Event-driven architecture
Andrew Easter
 
Event Driven Architecture
Chris Patterson
 
Event Driven Architecture (EDA) Reference Architecture
Bob Rhubart
 
Microservices Architecture - Bangkok 2018
Araf Karsh Hamid
 
Microservice Architecture
Nguyen Tung
 
App Modernization
PT Datacomm Diangraha
 
Azure Application Modernization
Karina Matos
 
Introduction to Microservices
Roger van de Kimmenade
 
Combining Logs, Metrics, and Traces for Unified Observability
Elasticsearch
 
When NOT to use Apache Kafka?
Kai Wähner
 
.conf Go 2022 - Observability Session
Splunk
 
Event Storming and Saga
Araf Karsh Hamid
 
Observability & Datadog
JamesAnderson599331
 
Understanding MicroSERVICE Architecture with Java & Spring Boot
Kashif Ali Siddiqui
 
Event-driven microservices
Andrew Schofield
 
Data Observability.pptx
SonaSamad1
 
Introducing Databricks Delta
Databricks
 
Event Driven Microservices architecture
NikhilBarthwal4
 
Building Event Driven Systems
WSO2
 

Similar to Introduction to Event-Driven Architecture (20)

PDF
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays
 
PPTX
Getting Started with ThousandEyes Proof of Concepts
ThousandEyes
 
PPTX
Getting Started with ThousandEyes Proof of Concepts
ThousandEyes
 
PDF
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
منیزہ ہاشمی
 
PDF
Stephen Wallo
AFCEA International
 
PPTX
Software panel
MassTLC
 
PPTX
App-First & Cloud-Native: How InterMiles Boosted CX with AWS & Infostretch
Infostretch
 
PPTX
Getting Demo & POV Ready
ThousandEyes
 
PPTX
Getting Started with ThousandEyes Proof of Concepts
ThousandEyes
 
PDF
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
VMware Tanzu
 
PDF
Design - Start Your API Journey Today
LaurenWendler
 
PPTX
Getting Started With ThousandEyes Proof of Concepts: End User Digital Experience
ThousandEyes
 
PDF
Realise True Business Value .pdf
ThousandEyes
 
PPTX
Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...
ThousandEyes
 
PDF
CWIN17 Utrecht / cg u services - frank van der wal
Capgemini
 
PPTX
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays
 
PDF
Power apps - Cloud business applications platform
Vladimir Ljubibratic
 
PPTX
Citrix Synergy 2014 - Syn231 Why cloud projects fail
Citrix
 
PDF
10 tips for enterprise cloud migration
Jeferson Rodrigues
 
PPTX
Kochi mulesoft meetup 02
sumitahuja94
 
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays
 
Getting Started with ThousandEyes Proof of Concepts
ThousandEyes
 
Getting Started with ThousandEyes Proof of Concepts
ThousandEyes
 
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
منیزہ ہاشمی
 
Stephen Wallo
AFCEA International
 
Software panel
MassTLC
 
App-First & Cloud-Native: How InterMiles Boosted CX with AWS & Infostretch
Infostretch
 
Getting Demo & POV Ready
ThousandEyes
 
Getting Started with ThousandEyes Proof of Concepts
ThousandEyes
 
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
VMware Tanzu
 
Design - Start Your API Journey Today
LaurenWendler
 
Getting Started With ThousandEyes Proof of Concepts: End User Digital Experience
ThousandEyes
 
Realise True Business Value .pdf
ThousandEyes
 
Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...
ThousandEyes
 
CWIN17 Utrecht / cg u services - frank van der wal
Capgemini
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays
 
Power apps - Cloud business applications platform
Vladimir Ljubibratic
 
Citrix Synergy 2014 - Syn231 Why cloud projects fail
Citrix
 
10 tips for enterprise cloud migration
Jeferson Rodrigues
 
Kochi mulesoft meetup 02
sumitahuja94
 
Ad

More from Solace (20)

PPTX
Connectivité temps réel et bi-directionnelle ​ pour solutions IOT
Solace
 
PPTX
PubSub+ Event Portal for Apache Kafka
Solace
 
PPTX
Stream events across your enterprise with the Solace Platform
Solace
 
PPTX
AsyncAPI Conference: From Design to Code with Marc DiPasquale
Solace
 
PDF
Enabling a Real-Time, Agile, Event-Driven Enterprise
Solace
 
PDF
Solace Developer Session: Replay
Solace
 
PPTX
High-Velocity, Real-Time Connected Industry – From Edge to Cloud
Solace
 
PPTX
Cloud Expo Europe 2019 - Solace Presentation
Solace
 
PDF
Solace Connect NYC 2019 - Enabling the Event-Driven Enterprise
Solace
 
PPTX
Stream SAP and Other Events Across Your Enterprise with an Event Mesh
Solace
 
PDF
Stream SAP and Other Events Across Your Enterprise with an Event Mesh
Solace
 
PPTX
Accelerate the Adoption of Event-Driven Architecture
Solace
 
PDF
Event-Driven Transformation in Banking and FSI
Solace
 
PPTX
Event Horizon at Solace Connect Singapore
Solace
 
PPTX
API Management, Meet Event Management
Solace
 
PPTX
Event Mesh: the Architecture Layer That Will Make Your Business Event-Driven
Solace
 
PDF
What the Evolution of Connected Car Platforms Can Teach Us About Building Ada...
Solace
 
PPTX
Async API and Solace: Enabling the Event-Driven Future
Solace
 
PDF
Gartner CIO & IT Executive Summit -- Event Mesh: The Architecture Layer That ...
Solace
 
PDF
Using a Hybrid IoT Event Mesh to Power a Global, Large-Scale IoT Platform
Solace
 
Connectivité temps réel et bi-directionnelle ​ pour solutions IOT
Solace
 
PubSub+ Event Portal for Apache Kafka
Solace
 
Stream events across your enterprise with the Solace Platform
Solace
 
AsyncAPI Conference: From Design to Code with Marc DiPasquale
Solace
 
Enabling a Real-Time, Agile, Event-Driven Enterprise
Solace
 
Solace Developer Session: Replay
Solace
 
High-Velocity, Real-Time Connected Industry – From Edge to Cloud
Solace
 
Cloud Expo Europe 2019 - Solace Presentation
Solace
 
Solace Connect NYC 2019 - Enabling the Event-Driven Enterprise
Solace
 
Stream SAP and Other Events Across Your Enterprise with an Event Mesh
Solace
 
Stream SAP and Other Events Across Your Enterprise with an Event Mesh
Solace
 
Accelerate the Adoption of Event-Driven Architecture
Solace
 
Event-Driven Transformation in Banking and FSI
Solace
 
Event Horizon at Solace Connect Singapore
Solace
 
API Management, Meet Event Management
Solace
 
Event Mesh: the Architecture Layer That Will Make Your Business Event-Driven
Solace
 
What the Evolution of Connected Car Platforms Can Teach Us About Building Ada...
Solace
 
Async API and Solace: Enabling the Event-Driven Future
Solace
 
Gartner CIO & IT Executive Summit -- Event Mesh: The Architecture Layer That ...
Solace
 
Using a Hybrid IoT Event Mesh to Power a Global, Large-Scale IoT Platform
Solace
 
Ad

Recently uploaded (20)

PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
July Patch Tuesday
Ivanti
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
July Patch Tuesday
Ivanti
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 

Introduction to Event-Driven Architecture

  • 1. Andrew Roberts October 17, 2019 Introduction to Event-Driven Architecture
  • 2. Rapid Fire EDA Use Cases ©Solace | Proprietary & Confidential 2
  • 3. • Using EDA helps manufacturers blur the lines between their IT and operational technology (OT) • In this industry, EDA helps move IoT device data between buildings, assembly lines, fleets, and containers • Technical problems faced: – large connection count, fan-in scenario – processing data streams – command & control Digital Manufacturing ©Solace | Proprietary & Confidential 3
  • 4. Financial Services • Financial services companies use EDA to power – OMS and Trading Platforms – FX Trading – Payment Processing – Market Data Distribution • Technical problems faced: – beating the latency of your competitors – extreme messagevolumes (10s of billions+ a day) – need zero messageloss guarantees – cutting network costs ©Solace | Proprietary & Confidential 4
  • 5. • In the Gaming and Gambling industry, EDAs are used to power – Online Poker & Gaming – Activity Tracking & Fraud Detection – Race/Sports Betting • Technical problems faced: – extremely spikey message volumes, e.g. receiving a wave of bets right before a horse race starts – need zero messageloss guarantees for high value messages – need to be able to push out odds/rates in real-time Gaming and Gambling ©Solace | Proprietary & Confidential 5
  • 6. Retail ©Solace | Proprietary & Confidential 6 • EDAs help retailers handle: – omnichannel inventory management – customer support – online stores – personalized rewards programs • Technical problems faced: – need to guarantee that inventory updates are processed in order, with zero messageloss and no duplicates – maintaining a globally accurate inventory count across distributed applications
  • 7. Government • EDAs help governments: –share information across agencies –aggregate sensor and surveillance data • Technical problems faced: –large connection count, fan-in scenario –processing data streams –needing to provide Data-as-a-Service across department silos ©Solace | Proprietary & Confidential 7
  • 8. You’ve seen how EDAs are used, so I get to quiz you: What’s EDA? ©Solace | Proprietary & Confidential 8
  • 9. What’s Event-Driven Architecture? Event-Driven Architecture (EDA) is a design paradigm in which a software component executes in response to receiving one or more event notifications. EDA is more loosely coupled than the client/server paradigm because the component that sends the notification doesn’t know the identity of the receiving components at the time of compiling. Reference: https://www.gartner.com/it-glossary/eda-event-driven-architecture ©Solace | Proprietary & Confidential 9
  • 10. Unpacking Gartner’s definition of “Event-Driven Architecture” – 1/2 • “Event-driven architecture (EDA) is a design paradigm in which a software component executes in response to receiving one or more event notifications … – event: “a significant change in state” • (1) CAREFUL! State changes don’t have to be significant to be considered an event. • (2) state != database – event notification: a notification that there has been a change in state ©Solace | Proprietary & Confidential 10
  • 11. Unpacking Gartner’s definition of “Event-Driven Architecture” – 2/2 • … EDA is more loosely coupled than the client/server paradigm because the component that sends the notification doesn’t know the identity of the receiving components at the time of compiling." – client/server paradigm: synchronous REST-driven request/reply communication between a client, i.e. a web app, and a server • (1) the very name tells you that this paradigm was made for the web • (2) it seems like Gartner is telling us people are using this pattern outside the web ©Solace | Proprietary & Confidential 11
  • 12. Let’s try to make this more relatable… ©Solace | Proprietary & Confidential 12
  • 13. • Fundamentals –Rapid Fire Use Cases ✅ –Intro to EDA ✅ –Intro to Messaging • Demos + Hands On! • Networking / Q&A Tonight’s agenda ©Solace | Proprietary & Confidential 13
  • 14. Intro to Messaging ©Solace | Proprietary & Confidential 14
  • 15. How can my applicationsshare state changes with each other? ©Solace | Proprietary & Confidential 15 App A App B ?EVENT EVENT EVENT Producer Consumer ? ? ? How can App A tell App B that its state has changed?
  • 16. … Messaging! ©Solace | Proprietary & Confidential 16 App A App B EVENT EVENT EVENT Producer Consumer
  • 17. Unless you’ve used messaging before, you probably associate inter microservice communication with synchronous HTTP requests and replies ©Solace | Proprietary & Confidential 17 AppA App B Request Reply Request/Reply Maybe you’ve worked with Kubernetes before Or even with a service mesh?
  • 18. Did you know messages can be sent using communication patterns other than request/reply? ©Solace | Proprietary & Confidential 18 AppA App B Request Reply Request/Reply Publish/SubscribeGuaranteed Point-to-Point Guaranteed Request/Reply Point-to-Point w/ Non-Exclusive Consumption
  • 19. Intro to Messaging ©Solace | Proprietary & Confidential 19 Jonathan Schabowsky - Senior Architect REST vs Messaging for Microservices - Which One Is Best? https://solace.com/blog/experience-awesomeness-event-driven-microservices/ A blog post written by my more senior colleague was very helpful to me when I first joined Solace, so I want to walk through some sections from it. Read the article in its entirety after tonight’s talk while everything’s still fresh in your head, it’ll be worth it!
  • 20. REST vs Messaging for Microservices - Which One Is Best? “Representational State Transfer (REST) was defined by Roy Fielding in his 2000 PhD dissertation entitled “Architectural Styles and the Design of Network-based Software Architectures”. ©Solace | Proprietary & Confidential 20 Dr. Fielding was a part of the process of defining HTTP, and was called upon time and again to defend the design choices of the web. Through his work on HTTP, he distilled his model into a core set of principles, properties and constraints, now called REST …” Origin of REST
  • 21. REST vs Messaging for Microservices - Which One Is Best? • “… Why is that important? It is my belief that we owe a great debt of gratitude to Dr. Fielding. RESTful interactions have become vital to enterprise computing as it enables many APIs on the web today.” • With that said, lets define what problems REST solves best: – Synchronous Request/Reply–HTTP (the network protocol on which REST is transported) itself is a request/response protocol, so REST is a great fit for request/reply interactions. – Publicly Facing APIs – Since HTTP is a de facto transport standard thanks to the work of the IETF, the transport layer of the APIs created using REST are interoperable with every programming language. Additionally, the messagepayload can be easily documented using tools such as Swagger (OpenAPI Specification). And due to the wide range of security threats present on the internet, the security ecosystem for REST is robust, from firewalls to OAUTH (Authentication/Authorization). ” ©Solace | Proprietary & Confidential 21
  • 22. REST vs Messaging for Microservices - Which One Is Best? “Due to the popularity of RESTful services today, I see many companies falling into the trap of using REST as an “all-in-one” tool... ©Solace | Proprietary & Confidential 22
  • 23. REST vs Messaging for Microservices - Which One Is Best? “… Certainly, some of this popularity is due to the power REST provides based on its own merits. Developers are also used to designing applications with synchronous request/reply since APIs and Databases have trained developers to invoke a method and expect an immediate response.” So when you design with REST, what happens if your service *does not* produce an immediate response? ©Solace | Proprietary & Confidential 23
  • 24. So when you design with REST, what happens if your service *does not* produce an immediate response? ©Solace | Proprietary & Confidential 24 Orchestration w/ callbacks
  • 25. So when you design with REST, what happens if your service *does not* produce an immediate response? ©Solace | Proprietary & Confidential 25 Daisy chaining
  • 26. So when you design with REST, what happens if your service *does not* produce an immediate response? ©Solace | Proprietary & Confidential 26 Polling
  • 27. REST vs Messaging for Microservices - Which One Is Best? “… REST and synchronous patterns have negative consequences that apply primarily to the communication between microservice within the enterprise and that in some cases are at odds with the principles of proper microservice architecture: (1)Tight Coupling (2)Blocking (3)Error Handling ©Solace | Proprietary & Confidential 27
  • 28. Tight Coupling ©Solace | Proprietary & Confidential 29 • receivePayment() • updateInventory() • addToOrderHistory() • runAnalyticsModel1() • runAnalyticsModel2() • .. • runAnalyticsModelN() • ship() Purchase Item Service For every new service you add, dev teams will have to update the Purchase Item Service. They’ll have to make sure all its unit tests pass, coordinate a production deployment, blah blah blah blah blah
  • 29. Blocking ©Solace | Proprietary & Confidential 31 your RESTful services await deepThought() When invoking a RESTful service, your service is blocked waiting for a response
  • 30. Blocking ©Solace | Proprietary & Confidential 32 50 minutes laterA dabbing synchronous microservice  This is how synchronousmicroservices do laundry
  • 31. Error Handling ©Solace | Proprietary & Confidential 34 Maybe you can pull this off on your own using a finite-state machine But that sounds hard. • What if your application reaches a state that is not explicitly handled? BUG. • Unit tests • Bloated code • Violates principal of single purpose
  • 32. REST vs Messaging for Microservices - Which One Is Best? “The solution to many of the shortcomings associated with RESTful/synchronous interactions is to combine the principles of event- driven architecture with microservices. Event Driven Microservices (EDM) are inherently asynchronous and are notified when it is time to perform work.” ©Solace | Proprietary & Confidential 35
  • 33. REST vs Messaging for Microservices - Which One Is Best? “The benefits of messaging for event-driven microservices are many and varied: • Loose Coupling • Non-Blocking • Simple to Scale • Greater Resiliency and Error Handling ©Solace | Proprietary & Confidential 36
  • 34. Loose Coupling ©Solace | Proprietary & Confidential 37 According to Gartner, event brokers “are middleware products that are used to facilitate, mediate and enrich the interactionsof sources and handlersin event-driven computing.” “Event-driven architectures (EDA) is inherently intermediated.Therefore, the intermediatingrole of event brokering is a definitionalpart of EDA. All implementations of event-driven applicationsmust use some technology in the role of an event broker.”
  • 35. Non-Blocking ©Solace | Proprietary & Confidential 38 *BEEP* This is how asynchronousmicroservices do laundry
  • 36. Simple to Scale ©Solace | Proprietary & Confidential 39 Non-Exclusive Consumption …
  • 37. Greater Resiliency and Error Handling ©Solace | Proprietary & Confidential 40 AppA App B Guaranteed Delivery EVENT
  • 38. Intro to Messaging – Moral of the story ©Solace | Proprietary & Confidential 41 Embrace Eventual Consistency “Eventual consistency is the idea that consistency will occur in the future, and it means accepting that things may be out of sync for some time. It’s a pattern and concept that lets developers avoid using nasty XA transactions. It’s the job of the eventing/messaging platform to ensure that these domain change events are never lost before being appropriately handled by a service and acknowledged. Some think the only benefit of eventual consistency is performance, but the real advantage is the decoupling of the microservices since individual services are merely acting upon events that they are interested in.” Marc DiPasquale — Developer Advocate Considerationsfor Developers BuildingEvent-Driven Microservices https://solace.com/blog/considerations-developers-building-event-driven-microservices/
  • 39. Let’s think how we can improve Amazon’s service ©Solace | Proprietary & Confidential 42 • receivePayment() • updateInventory() • addToOrderHistory() • runAnalyticsModel1() • runAnalyticsModel2() • .. • runAnalyticsModelN() • ship() Purchase Item Service
  • 40. • Fundamentals –Rapid Fire Use Cases ✅ –Intro to EDA ✅ –Intro to Messaging ✅ • Demos + Hands On! • Networking / Q&A Tonight’s agenda ©Solace | Proprietary & Confidential 43
  • 41. Demo + Hands On! ©Solace | Proprietary & Confidential 44
  • 42. ©Solace | Proprietary & Confidential 45
  • 43. ©Solace | Proprietary & Confidential 46
  • 44. Check out the code here • https://github.com/solacese/romo-robot ©Solace | Proprietary & Confidential 47
  • 45. • Fundamentals –Rapid Fire Use Cases ✅ –Intro to EDA ✅ –Intro to Messaging ✅ • Demos + Hands On! ✅ • Networking / Q&A Tonight’s agenda ©Solace | Proprietary & Confidential 48
  • 46. Networking / Q&A ©Solace | Proprietary & Confidential 49
  • 47. Please take our survey! Scan the QR code or navigate to the link ©Solace | Proprietary & Confidential 50 http://bit.ly/Solaceworkshopnyc
  • 48. References – Blog posts ©Solace | Proprietary & Confidential 51 • Event-Driven Architecture (EDA) - Gartner IT Glossary https://www.gartner.com/it-glossary/eda-event-driven-architecture • REST vs Messaging for Microservices - Which One Is Best? https://solace.com/blog/experience-awesomeness-event-driven-microservices/ • Considerationsfor Developers BuildingEvent-Driven Microservices https://solace.com/blog/considerations-developers-building-event-driven-microservices/
  • 49. References – Messaging basics ©Solace | Proprietary & Confidential 52 • PubSub+ Concept Maps https://docs.solace.com/PubSub-ConceptMaps.htm • PubSub+ Event and Messaging Basics https://docs.solace.com/PubSub-Basics/Basics.htm • Messaging https://docs.solace.com/PubSub-Basics/Core-Concepts-Messaging.htm • Message Delivery Modes https://docs.solace.com/PubSub-Basics/Core-Concepts-Message-Delivery-Modes.htm • Message Models https://docs.solace.com/PubSub-Basics/Core-Concepts-Message-Models.htm