1 Event-Driven Architecture in the Cloud @ChadGreen Event-Driven Architecture in the Cloud Little Rock Tech Fest Chad Green October 10, 2019
1Event-Driven Architecture in the Cloud@ChadGreen
Event-Driven Architecture in the CloudLittle Rock Tech Fest
Chad GreenOctober 10, 2019
2Event-Driven Architecture in the Cloud@ChadGreen
3Event-Driven Architecture in the Cloud@ChadGreen
u
)
2
#
Chad GreenDirector of Software DevelopmentScholarRx
chadwickegreen
ChadGreen
ChadGreen.com
4Event-Driven Architecture in the Cloud@ChadGreen
Event-Driven Architecture in the CloudPreamble
5Event-Driven Architecture in the Cloud@ChadGreen
Enterprise Architecture
Enterprise architecture applies architecture principles and practices to guide organizations through the business, information, process,
and technology changes necessary to execute their strategies.
- Wikipedia -
6Event-Driven Architecture in the Cloud@ChadGreen
MonolithEnterprise Architecture
DatabaseUI
Order Processing
Payment Processing
Inventory Management
Notification
Fulfillment
7Event-Driven Architecture in the Cloud@ChadGreen
MicroservicesEnterprise Architecture
UI
API
Gateway
OrderProcessing 0
InventoryManagement 0
Fulfilment0
Payment Processing0
Notifications0
8Event-Driven Architecture in the Cloud@ChadGreen
Process FlowMicroservices
UI API Gateway Order Processing Payment Processing Inventory Management Notification Fulfilment
Place Order Place Order Charge Credit Card
Return Conf Num
Update Inventory
ReturnConfirmation
Send OrderConfirmation
Confirm
Create Shipping Label
Confirm
Return Confirmation
Return Confirmation
9Event-Driven Architecture in the Cloud@ChadGreen
MicroservicesEnterprise Architecture
UI
API
Gateway
OrderProcessing 0
InventoryManagement 0
Fulfilment0
Payment Processing0
Notifications0
10Event-Driven Architecture in the Cloud@ChadGreen
Event-Driven Architecture
A software architecture pattern promoting the production, detection,
consumption of, and reaction to events.
- Wikipedia -
11Event-Driven Architecture in the Cloud@ChadGreen
Event-Driven Architecture
12Event-Driven Architecture in the Cloud@ChadGreen
Event-Driven Architecture
13Event-Driven Architecture in the Cloud@ChadGreen
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.
- Gartner -
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.
14Event-Driven Architecture in the Cloud@ChadGreen
Event-Driven Architecture
Event Producer Event Ingestion Event Consumer
Event Consumer
Event Consumer
15Event-Driven Architecture in the Cloud@ChadGreen
MicroservicesEnterprise Architecture
UI API Gateway Order Processing Payment Processing Inventory Management Notification Fulfilment
Place Order Place Order Charge Credit Card
Return Conf Num
Update Inventory
ReturnConfirmation
Send OrderConfirmation
Confirm
Create Shipping Label
Confirm
Return Confirmation
Return Confirmation
16Event-Driven Architecture in the Cloud@ChadGreen
Process FlowEvent-Driven Architecture
UI
API Gateway
Place Order
Order Processing
Place Order
Payment Processing
Charge Credit Card
Event Hub
Inventory Management
Notifications
Fulfilment
Notify Subscribers
Update Inventory
Send Order Confirmation
Create Shipping Label
17Event-Driven Architecture in the Cloud@ChadGreen
Not Queue Based ProcessingEvent-Driven Architecture
UI
API Gateway
Place Order
Order Processing
Place Order
Payment Processing
Charge Credit Card
Update Inventory Queue
Inventory Management
Notifications
Fulfilment
Update Inventory
Send Order Confirmation
Create Shipping Label
Order Confirm Queue
Fulfilment Queue
Send Message to Queue
Send Message to Queue
18Event-Driven Architecture in the Cloud@ChadGreen
Event Producer Event Ingestion Event Consumer
Event Consumer
Event Consumer
Event Consumption ModelsEvent-Driven Architecture
Pub/Sub Event Streaming
19Event-Driven Architecture in the Cloud@ChadGreen
Consumer Processing VariationsEvent-Driven Architecture
Event Consumer
Event Consumer
Event Consumer
Simple Event Processing
Complex Event Processing
Event Stream Processing
20Event-Driven Architecture in the Cloud@ChadGreen
Event Producer Event Ingestion Event Consumer
Event Consumer
Event Consumer
External Event SourcesEvent-Driven Architecture
A
21Event-Driven Architecture in the Cloud@ChadGreen
Event Producer Event Ingestion Event Consumer
Event Consumer
Event Consumer
Multiple Consumer InstancesEvent-Driven Architecture
Event ConsumerEvent Consumer
Event Consumer
Event ConsumerEvent ConsumerEvent Consumer
Event ConsumerEvent Consumer
Event Consumer
22Event-Driven Architecture in the Cloud@ChadGreen
Multiple Subsystems
Multiple subsystems must process the same
events.
Real-Time Processing
Real-time processing with minimum time lag.
Complex Event Processing
Complex event processing, such as pattern matching or
aggregation over time windows.
High Volume/Velocity Data
High volume and high velocity of data, such as
IoT.
When to use this architectureEvent-Driven Architecture
23Event-Driven Architecture in the Cloud@ChadGreen
Decoupling Encapsulation Responsive
Scalable/Distributed Independence
BenefitsEvent-Driven Architecture
24Event-Driven Architecture in the Cloud@ChadGreen
Steep Learning Curve Complexity
Loss of Transactionality Lineage
DrawbacksEvent-Driven Architecture
25Event-Driven Architecture in the Cloud@ChadGreen
Guaranteed Delivery Sequencing
ChallengesEvent-Driven Architecture
26Event-Driven Architecture in the Cloud@ChadGreen
Event-Driven Architecture in the CloudImplementation Options
27Event-Driven Architecture in the Cloud@ChadGreen
Implementation Options
PieSync TIBCO Spotfire Amazon Kinesis Amazon Elasticsearch Service
Google Cloud Pub/Sub StreamSets PubNub Data Stream
The PI System The PI System Confluent HVR Antiunity Replicate SQLstream IBM Streaming Analytics
Astronomer Striim Azure Event Hubs
28Event-Driven Architecture in the Cloud@ChadGreen
Azure Event HubsSimple, secure, and scalable real-time data ingestion
PieSync TIBCO Spotfire Amazon Kinesis Amazon Elasticsearch Service
Google Cloud Pub/Sub StreamSets PubNub Data Stream
The PI System The PI System Confluent HVR Antiunity Replicate SQLstream IBM Streaming Analytics
Astronomer Striim Azure Event Hubs
Implementation Options
Fully managed, real-time data ingestion service that is
simple, trusted, and scalable.
29Event-Driven Architecture in the Cloud@ChadGreen
Why choose Event Hubs?Azure Event Hubs
Simple Secure
Scalable Open
30Event-Driven Architecture in the Cloud@ChadGreen
Key Architecture ComponentsAzure Event Hubs
Event Producers
31Event-Driven Architecture in the Cloud@ChadGreen
Key Architecture ComponentsAzure Event Hubs
Partitions
32Event-Driven Architecture in the Cloud@ChadGreen
Key Architecture ComponentsAzure Event Hubs
Consumer Groups
33Event-Driven Architecture in the Cloud@ChadGreen
Key Architecture ComponentsAzure Event Hubs
Throughput Units
34Event-Driven Architecture in the Cloud@ChadGreen
Key Architecture ComponentsAzure Event Hubs
Event Receivers
35Event-Driven Architecture in the Cloud@ChadGreen
Event-Driven Architecture in the CloudDemonstration
36Event-Driven Architecture in the Cloud@ChadGreen
ScenarioDemonstration
UI
API Gateway
Place Order
Order Processing
Place Order
Payment Processing
Charge Credit Card
Event Hub
Inventory Management
Notifications
Fulfilment
Notify Subscribers
Update Inventory
Send Order Confirmation
Create Shipping Label
37Event-Driven Architecture in the Cloud@ChadGreen
ScenarioDemonstration
UI
API Gateway
Place Order
Order Processing
Place Order
Payment Processing
Charge Credit Card
Event Hub
Inventory Management
Notifications
Fulfilment
Notify Subscribers
Update Inventory
Send Order Confirmation
Create Shipping Label
38Event-Driven Architecture in the Cloud@ChadGreen
Event-Driven Architecture in the CloudSummary
39Event-Driven Architecture in the Cloud@ChadGreen
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.
- Gartner -
40Event-Driven Architecture in the Cloud@ChadGreen
Strengths• Decoupling• Encapsulation• Responsive• Scalable /
Distributed• Independence
Weaknesses• Steep Learning
Curve• Complexity• Loss of
Transactionality• Lineage
Opportunities• Multiple
Subsystems• Real-Time
Processing• Complex Event
Processing• High Volume /
Velocity Data
Threats• No Guaranteed
Delivery• Potential
Sequencing Issues
41Event-Driven Architecture in the Cloud@ChadGreen
Event Producer Event Ingestion Event Consumer
Event Consumer
Event Consumer
Event-Driven ArchitectureSummary
42Event-Driven Architecture in the Cloud@ChadGreen
Fully managed, real-time data ingestion service that is
simple, trusted, and scalable.
Azure Event HubsSummary
Simple Secure Scalable Open
43Event-Driven Architecture in the Cloud@ChadGreen
u
)
2
#
Chad GreenDirector of Software DevelopmentScholarRx
chadwickegreen
ChadGreen
ChadGreen.com