SlideShare a Scribd company logo
1 of 59
EVENT DRIVEN
ARCHITECTURE
       Chris Patterson
Senior Architect, RelayHealth

    chris@phatboyg.com
EVENT DRIVEN
ARCHITECTURE




           Chris Patterson
    Senior Architect, RelayHealth
Agenda

Review Enterprise Application Integration
Introduce Event Driven Architecture
Define Events
.NET sample using MassTransit
About Me

Enterprise Software Architect
20+ years in commercial software development
11+ years at a Fortune 15 company
Proven history with distributed, real-time systems
Microsoft Visual C# MVP
ENTERPRISE APPLICATION
    INTEGRATION
ENTERPRISE APPLICATION
    INTEGRATION

Linking applications in an organization together to
    simplify and automate business processes
Shared Database

Multiple applications coupled to single schema
Unclear ownership of schema
Edges between applications blurred
Linked servers for SQL to SQL RPC
Changes often affect multiple applications
File Transfer
Extract - Transform - Load (ETL)
Asynchronous
Simple interoperability through common formats
Timeliness of data can lead to inconsistencies
Large data volume containing unrelated data
Ownership of files, cleanup, versioning
Web Services
Explicit Contract (WSDL, DataContract)
Synchronous Operation leads to sequencing
Services must be available at invocation
Nested call stacks fragile, consume resources
Remote Procedure Call (RPC, COM, CORBA)
The network is unreliable
MESSAGING
Message Exchange

Create      Process



Send        Receive
A-Synchronicity

Message producers are non-blocking
  Fire and forget
Message consumers run in their own process
Introduces a more complex programming model
Minimized Coupling


Eliminates temporal coupling
Enables isolated testing of services
Reduces dependencies, increasing service reuse
Explicit Contract

Agreement between producer and consumer
Internal data structure remains private
Integration points remain at the application’s edge
Eliminates propagation of internal changes
Fault Tolerance


Messages improve recoverability
Durable message transports
Data Availability


Enables small, frequent transfers of related content
Distribute system load over a wider time window
EVENT DRIVEN
ARCHITECTURE
EVENT DRIVEN
       ARCHITECTURE
A method of building enterprise systems in which events
   flow between decoupled components and services
Another Architecture?

Service Oriented   Event Driven
  Architecture     Architecture
Service Oriented   Event Driven
  Architecture     Architecture




    Complimentary
Service Oriented   Event Driven
  Architecture     Architecture




    Complimentary
SOA 1.0

Applications are composed using a designer
Synchronous programming model
Step-by-step (F10) flow through services
Majority of interactions are request/response
Event Driven Architecture

Components are assembled at run-time
Asynchronous programming model
Reactive behavior
Leverages one way, fire and forget, messaging
Autonomous Components

Defined by responsibility
Independent
Self-governing - makes decisions on how to react
Self-controlling - responsible for execution context
Self-contained - not part of an application
Event Producers


Publish events
Oblivious to consumer reactions
Unaffected by high number of consumers
Event Consumers


React to events
Subscribe by topic/type/selector
Asynchronous operation
Business Components


Logical grouping of autonomous components
Represent a complete business process
COMMANDS
Commands

Tell a component or service to do something
Initiated by an event, interaction, etc.
Use correlation for tracing, idempotence
Sent using messaging (not published)
Reset Password


User initiates a password reset
Password service sends reset email
User clicks link in email
Message Body

public class ResetPassword
{
  public Guid RequestId { get; set; }
  public string Username { get; set; }
}
Compared To...

public void ResetPassword(string username)




  public class ResetPassword
  {
    public Guid RequestId { get; set; }
    public string Username { get; set; }
  }
EVENTS
EVENTS

Represent a change in state
Self Contained

A pure and complete representation of a specific event
Time relevant, not time sensitive
Avoid references to internal data
Reduces dependencies, loosens coupling
Identified



Each event should have its own unique identifier
Related


Related events should share a common identifier
  Allows event tracing (the new F11)
  Assists in combining events into processes
Observed


Events are published as messages
Multiple components can subscribe to the same event
EVENT TYPES
Business Events
Map to real world events that occur in business


Item Added to Cart
Invoice Received
Order Shipped
Payment Requested
Lifecycle Events
Notifications related to the life of a state or process


  Preparing Shipment / Shipment Prepared
  Authorizing Payment / Payment Authorization
  Complete
  Session Started / Session Completed
Management Events
Relate events to time, ranges, limits


Timely Service Guarantee Exceeded
  Your order within five minutes, or it’s free
Popular Item Notification
  Items with a 5x increase in sales in an hour
MassTransit Key Points

Lightweight Service Bus Implementation
Loose coupling via publish/subscribe
Active Service Pattern
Supports MSMQ, ActiveMQ, TIBCO EMS
Open Source, Apache 2.0 License
“EVENT DRIVEN
ARCHITECTURE IS...
programming without a call stack.”
     -Gregor Hohpe, Google
Testing


Individual components testable in isolation
Fully unit-testable using mocks and stubs
Test-first development helps improve data contract
Logging


Thorough logging with correlation information
Log level configurable at runtime
Visualization Tools


Present code-based logic in a visual form
Aid in identifying composition problems
Should be viewable on operational systems
FOR MORE
INFORMATION
Reading Material
Reading Material
Reading Material
Reading Material
Reading Material
Reading Material
Reading Material
Web Sites

MassTransit.GoogleCode.com
 Topshelf.GoogleCode.com
 Magnum.GoogleCode.com
CONTACT ME
      Chris@PhatBoyG.com
http://PhatBoyG.LosTechies.com
       twitter: @PhatBoyG
   voice: text “cmp” to 50500

More Related Content

What's hot

10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
Amazon Web Services Korea
 
Introduction to WSO2 ESB
Introduction to WSO2 ESB Introduction to WSO2 ESB
Introduction to WSO2 ESB
WSO2
 
Event Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
Event Driven Architecture (EDA) Reference Architecture | Anbu KrishnaswamyEvent Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
Event Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
Bob Rhubart
 
System Center Configuration Manager-The Most Popular System Center Component
System Center Configuration Manager-The Most Popular System Center Component System Center Configuration Manager-The Most Popular System Center Component
System Center Configuration Manager-The Most Popular System Center Component
C/D/H Technology Consultants
 

What's hot (20)

Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
NashTech - Azure Application Insights
NashTech - Azure Application InsightsNashTech - Azure Application Insights
NashTech - Azure Application Insights
 
Microsoft Azure a cloud computing platform
Microsoft Azure a cloud computing platformMicrosoft Azure a cloud computing platform
Microsoft Azure a cloud computing platform
 
SAP Extended ECM by OpenText 10.5 - What's New?
SAP Extended ECM by OpenText 10.5 - What's New?SAP Extended ECM by OpenText 10.5 - What's New?
SAP Extended ECM by OpenText 10.5 - What's New?
 
Azure Monitoring Overview
Azure Monitoring OverviewAzure Monitoring Overview
Azure Monitoring Overview
 
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
10월 웨비나 - AWS에서 Active Directory 구축 및 연동 옵션 살펴보기 (김용우 솔루션즈 아키텍트)
 
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
 
CQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applicationsCQRS and Event Sourcing for IoT applications
CQRS and Event Sourcing for IoT applications
 
IoT on Azure
IoT on AzureIoT on Azure
IoT on Azure
 
Introduction to WSO2 ESB
Introduction to WSO2 ESB Introduction to WSO2 ESB
Introduction to WSO2 ESB
 
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
 
클라우드 네이티브를 위한 Confluent Cloud
클라우드 네이티브를 위한 Confluent Cloud클라우드 네이티브를 위한 Confluent Cloud
클라우드 네이티브를 위한 Confluent Cloud
 
Event Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
Event Driven Architecture (EDA) Reference Architecture | Anbu KrishnaswamyEvent Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
Event Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
 
System Center Configuration Manager-The Most Popular System Center Component
System Center Configuration Manager-The Most Popular System Center Component System Center Configuration Manager-The Most Popular System Center Component
System Center Configuration Manager-The Most Popular System Center Component
 
SplunkLive! Customer Presentation--ServiceNow
SplunkLive! Customer Presentation--ServiceNowSplunkLive! Customer Presentation--ServiceNow
SplunkLive! Customer Presentation--ServiceNow
 
CQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDDCQRS and Event Sourcing, An Alternative Architecture for DDD
CQRS and Event Sourcing, An Alternative Architecture for DDD
 
Splunk Tutorial for Beginners - What is Splunk | Edureka
Splunk Tutorial for Beginners - What is Splunk | EdurekaSplunk Tutorial for Beginners - What is Splunk | Edureka
Splunk Tutorial for Beginners - What is Splunk | Edureka
 
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya RaghunathanCamunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
Camunda for Modern Web Applications by Corinna Cohn and Sowmya Raghunathan
 
Single Sign-On Best Practices
Single Sign-On Best PracticesSingle Sign-On Best Practices
Single Sign-On Best Practices
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 

Similar to Event Driven Architecture

The New Enterprise Alphabet - .Net, XML And XBRL
The New Enterprise Alphabet - .Net, XML And XBRLThe New Enterprise Alphabet - .Net, XML And XBRL
The New Enterprise Alphabet - .Net, XML And XBRL
Jorgen Thelin
 
RailswayCon 2010 - Command Your Domain
RailswayCon 2010 - Command Your DomainRailswayCon 2010 - Command Your Domain
RailswayCon 2010 - Command Your Domain
Lourens Naudé
 
BPM & Workflow in the New Enterprise Architecture
BPM & Workflow in the New Enterprise ArchitectureBPM & Workflow in the New Enterprise Architecture
BPM & Workflow in the New Enterprise Architecture
Nathaniel Palmer
 
BPM & Workflow in the New Enterprise Architecture
BPM & Workflow in the New Enterprise ArchitectureBPM & Workflow in the New Enterprise Architecture
BPM & Workflow in the New Enterprise Architecture
Nathaniel Palmer
 

Similar to Event Driven Architecture (20)

Event Driven Architecture at NDDNUG
Event Driven Architecture at NDDNUGEvent Driven Architecture at NDDNUG
Event Driven Architecture at NDDNUG
 
Guido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soaGuido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soa
 
The New Enterprise Alphabet - .Net, XML And XBRL
The New Enterprise Alphabet - .Net, XML And XBRLThe New Enterprise Alphabet - .Net, XML And XBRL
The New Enterprise Alphabet - .Net, XML And XBRL
 
Three SOA Case Studies
Three SOA Case StudiesThree SOA Case Studies
Three SOA Case Studies
 
TechDays 2010 Portugal - Event Driven Architectures - 16x9
TechDays 2010 Portugal - Event Driven Architectures - 16x9TechDays 2010 Portugal - Event Driven Architectures - 16x9
TechDays 2010 Portugal - Event Driven Architectures - 16x9
 
Rolando Sandoval Win Fx The Real Thing
Rolando Sandoval   Win Fx The Real ThingRolando Sandoval   Win Fx The Real Thing
Rolando Sandoval Win Fx The Real Thing
 
Mashups and Business Process Management in SOA
Mashups and Business Process Management in SOAMashups and Business Process Management in SOA
Mashups and Business Process Management in SOA
 
How to Approach Tool Integrations
How to Approach Tool IntegrationsHow to Approach Tool Integrations
How to Approach Tool Integrations
 
Oracle 10g Application Server
Oracle 10g Application ServerOracle 10g Application Server
Oracle 10g Application Server
 
Soa & Bpel
Soa & BpelSoa & Bpel
Soa & Bpel
 
Soa & Bpel
Soa & BpelSoa & Bpel
Soa & Bpel
 
Can IBM i play with SOA?
Can IBM i play with SOA?Can IBM i play with SOA?
Can IBM i play with SOA?
 
Eda on the azure services platform
Eda on the azure services platformEda on the azure services platform
Eda on the azure services platform
 
ISV Integrations
ISV IntegrationsISV Integrations
ISV Integrations
 
ISV Integrations
ISV IntegrationsISV Integrations
ISV Integrations
 
Dh Government
Dh GovernmentDh Government
Dh Government
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
RailswayCon 2010 - Command Your Domain
RailswayCon 2010 - Command Your DomainRailswayCon 2010 - Command Your Domain
RailswayCon 2010 - Command Your Domain
 
BPM & Workflow in the New Enterprise Architecture
BPM & Workflow in the New Enterprise ArchitectureBPM & Workflow in the New Enterprise Architecture
BPM & Workflow in the New Enterprise Architecture
 
BPM & Workflow in the New Enterprise Architecture
BPM & Workflow in the New Enterprise ArchitectureBPM & Workflow in the New Enterprise Architecture
BPM & Workflow in the New Enterprise Architecture
 

Recently uploaded

Recently uploaded (20)

WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 

Event Driven Architecture

Editor's Notes

  1. Soft real time systems