SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Event-driven architecture
Event-driven architectureEvent-driven architecture
Event-driven architectureAndrew Easter
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven ArchitectureChris Patterson
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservicesAndrew Schofield
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices Amazon Web Services
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice ArchitectureWSO2
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanAraf Karsh Hamid
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To MicroservicesLalit Kale
 
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
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Araf Karsh Hamid
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in PracticeKasun Indrasiri
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureNguyen Tung
 

Mais procurados (20)

Event-driven architecture
Event-driven architectureEvent-driven architecture
Event-driven architecture
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservices
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice Architecture
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
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
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 

Semelhante a Introduction to Event-Driven Architecture

apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...apidays
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsThousandEyes
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsThousandEyes
 
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdfImprove_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdfمنیزہ ہاشمی
 
Software panel
Software panelSoftware panel
Software panelMassTLC
 
App-First & Cloud-Native: How InterMiles Boosted CX with AWS & Infostretch
App-First & Cloud-Native: How InterMiles Boosted CX with AWS & InfostretchApp-First & Cloud-Native: How InterMiles Boosted CX with AWS & Infostretch
App-First & Cloud-Native: How InterMiles Boosted CX with AWS & InfostretchInfostretch
 
Getting Demo & POV Ready
Getting Demo & POV ReadyGetting Demo & POV Ready
Getting Demo & POV ReadyThousandEyes
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsThousandEyes
 
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, AnywhereGet the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, AnywhereVMware Tanzu
 
Design - Start Your API Journey Today
Design - Start Your API Journey TodayDesign - Start Your API Journey Today
Design - Start Your API Journey TodayLaurenWendler
 
Getting Started With ThousandEyes Proof of Concepts: End User Digital Experience
Getting Started With ThousandEyes Proof of Concepts: End User Digital ExperienceGetting Started With ThousandEyes Proof of Concepts: End User Digital Experience
Getting Started With ThousandEyes Proof of Concepts: End User Digital ExperienceThousandEyes
 
Realise True Business Value .pdf
Realise True Business Value .pdfRealise True Business Value .pdf
Realise True Business Value .pdfThousandEyes
 
Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...
Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...
Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...ThousandEyes
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCapgemini
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays
 
Power apps - Cloud business applications platform
Power apps - Cloud business applications platformPower apps - Cloud business applications platform
Power apps - Cloud business applications platformVladimir Ljubibratic
 
Citrix Synergy 2014 - Syn231 Why cloud projects fail
Citrix Synergy 2014 - Syn231 Why cloud projects failCitrix Synergy 2014 - Syn231 Why cloud projects fail
Citrix Synergy 2014 - Syn231 Why cloud projects failCitrix
 
10 tips for enterprise cloud migration
10 tips for enterprise cloud migration10 tips for enterprise cloud migration
10 tips for enterprise cloud migrationJeferson Rodrigues
 
Kochi mulesoft meetup 02
Kochi mulesoft meetup 02Kochi mulesoft meetup 02
Kochi mulesoft meetup 02sumitahuja94
 

Semelhante a Introduction to Event-Driven Architecture (20)

apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
apidays LIVE Australia - The Evolution of APIs: Events and the AsyncAPI speci...
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdfImprove_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
Improve_Application_Availability_and_Performance_Sales_Crib_Sheet.pdf
 
Stephen Wallo
Stephen WalloStephen Wallo
Stephen Wallo
 
Software panel
Software panelSoftware panel
Software panel
 
App-First & Cloud-Native: How InterMiles Boosted CX with AWS & Infostretch
App-First & Cloud-Native: How InterMiles Boosted CX with AWS & InfostretchApp-First & Cloud-Native: How InterMiles Boosted CX with AWS & Infostretch
App-First & Cloud-Native: How InterMiles Boosted CX with AWS & Infostretch
 
Getting Demo & POV Ready
Getting Demo & POV ReadyGetting Demo & POV Ready
Getting Demo & POV Ready
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, AnywhereGet the Message Across: Seamlessly Transport Data to Apps, Anywhere
Get the Message Across: Seamlessly Transport Data to Apps, Anywhere
 
Design - Start Your API Journey Today
Design - Start Your API Journey TodayDesign - Start Your API Journey Today
Design - Start Your API Journey Today
 
Getting Started With ThousandEyes Proof of Concepts: End User Digital Experience
Getting Started With ThousandEyes Proof of Concepts: End User Digital ExperienceGetting Started With ThousandEyes Proof of Concepts: End User Digital Experience
Getting Started With ThousandEyes Proof of Concepts: End User Digital Experience
 
Realise True Business Value .pdf
Realise True Business Value .pdfRealise True Business Value .pdf
Realise True Business Value .pdf
 
Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...
Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...
Gaining Instant Insight Into Your Critical SaaS Apps With Collective Intellig...
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der wal
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
 
Power apps - Cloud business applications platform
Power apps - Cloud business applications platformPower apps - Cloud business applications platform
Power apps - Cloud business applications platform
 
Citrix Synergy 2014 - Syn231 Why cloud projects fail
Citrix Synergy 2014 - Syn231 Why cloud projects failCitrix Synergy 2014 - Syn231 Why cloud projects fail
Citrix Synergy 2014 - Syn231 Why cloud projects fail
 
10 tips for enterprise cloud migration
10 tips for enterprise cloud migration10 tips for enterprise cloud migration
10 tips for enterprise cloud migration
 
Kochi mulesoft meetup 02
Kochi mulesoft meetup 02Kochi mulesoft meetup 02
Kochi mulesoft meetup 02
 

Mais de Solace

Connectivité temps réel et bi-directionnelle ​ pour solutions IOT
Connectivité temps réel et bi-directionnelle ​ pour solutions IOTConnectivité temps réel et bi-directionnelle ​ pour solutions IOT
Connectivité temps réel et bi-directionnelle ​ pour solutions IOTSolace
 
PubSub+ Event Portal for Apache Kafka
PubSub+ Event Portal for Apache KafkaPubSub+ Event Portal for Apache Kafka
PubSub+ Event Portal for Apache KafkaSolace
 
Stream events across your enterprise with the Solace Platform
Stream events across your enterprise with the Solace PlatformStream events across your enterprise with the Solace Platform
Stream events across your enterprise with the Solace PlatformSolace
 
AsyncAPI Conference: From Design to Code with Marc DiPasquale
AsyncAPI Conference: From Design to Code with Marc DiPasqualeAsyncAPI Conference: From Design to Code with Marc DiPasquale
AsyncAPI Conference: From Design to Code with Marc DiPasqualeSolace
 
Enabling a Real-Time, Agile, Event-Driven Enterprise
Enabling a Real-Time, Agile, Event-Driven EnterpriseEnabling a Real-Time, Agile, Event-Driven Enterprise
Enabling a Real-Time, Agile, Event-Driven EnterpriseSolace
 
Solace Developer Session: Replay
Solace Developer Session: ReplaySolace Developer Session: Replay
Solace Developer Session: ReplaySolace
 
High-Velocity, Real-Time Connected Industry – From Edge to Cloud
High-Velocity, Real-Time Connected Industry – From Edge to CloudHigh-Velocity, Real-Time Connected Industry – From Edge to Cloud
High-Velocity, Real-Time Connected Industry – From Edge to CloudSolace
 
Cloud Expo Europe 2019 - Solace Presentation
Cloud Expo Europe 2019 - Solace PresentationCloud Expo Europe 2019 - Solace Presentation
Cloud Expo Europe 2019 - Solace PresentationSolace
 
Solace Connect NYC 2019 - Enabling the Event-Driven Enterprise
Solace Connect NYC 2019 - Enabling the Event-Driven EnterpriseSolace Connect NYC 2019 - Enabling the Event-Driven Enterprise
Solace Connect NYC 2019 - Enabling the Event-Driven EnterpriseSolace
 
Stream SAP and Other Events Across Your Enterprise with an Event Mesh
Stream SAP and Other Events Across Your Enterprise with an Event MeshStream SAP and Other Events Across Your Enterprise with an Event Mesh
Stream SAP and Other Events Across Your Enterprise with an Event MeshSolace
 
Stream SAP and Other Events Across Your Enterprise with an Event Mesh
Stream SAP and Other Events Across Your Enterprise with an Event MeshStream SAP and Other Events Across Your Enterprise with an Event Mesh
Stream SAP and Other Events Across Your Enterprise with an Event MeshSolace
 
Accelerate the Adoption of Event-Driven Architecture
Accelerate the Adoption of Event-Driven ArchitectureAccelerate the Adoption of Event-Driven Architecture
Accelerate the Adoption of Event-Driven ArchitectureSolace
 
Event-Driven Transformation in Banking and FSI
Event-Driven Transformation in Banking and FSIEvent-Driven Transformation in Banking and FSI
Event-Driven Transformation in Banking and FSISolace
 
Event Horizon at Solace Connect Singapore
Event Horizon at Solace Connect SingaporeEvent Horizon at Solace Connect Singapore
Event Horizon at Solace Connect SingaporeSolace
 
API Management, Meet Event Management
API Management, Meet Event ManagementAPI Management, Meet Event Management
API Management, Meet Event ManagementSolace
 
Event Mesh: the Architecture Layer That Will Make Your Business Event-Driven
Event Mesh: the Architecture Layer That Will Make Your Business Event-DrivenEvent Mesh: the Architecture Layer That Will Make Your Business Event-Driven
Event Mesh: the Architecture Layer That Will Make Your Business Event-DrivenSolace
 
What the Evolution of Connected Car Platforms Can Teach Us About Building Ada...
What the Evolution of Connected Car Platforms Can Teach Us About Building Ada...What the Evolution of Connected Car Platforms Can Teach Us About Building Ada...
What the Evolution of Connected Car Platforms Can Teach Us About Building Ada...Solace
 
Async API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureAsync API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureSolace
 
Gartner CIO & IT Executive Summit -- Event Mesh: The Architecture Layer That ...
Gartner CIO & IT Executive Summit -- Event Mesh: The Architecture Layer That ...Gartner CIO & IT Executive Summit -- Event Mesh: The Architecture Layer That ...
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
Using a Hybrid IoT Event Mesh to Power a Global, Large-Scale IoT PlatformUsing a Hybrid IoT Event Mesh to Power a Global, Large-Scale IoT Platform
Using a Hybrid IoT Event Mesh to Power a Global, Large-Scale IoT PlatformSolace
 

Mais de Solace (20)

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

Último

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

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