In this presentation, I will explain event driven architecture, describe the different types of events, demonstrate how events can be related and orchestrated, and provide a basic understanding of how this method can drive the architecture of enterprise systems. In addition to understanding the concepts of event driven architecture, we will explore a working sample built using an open-source .NET messaging framework called MassTransit.
3. About Me
Enterprise Software Architect
Over 20 years of software development experience
Over 11 years at a Fortune 15 company
Proven track record with distributed, real-time systems
5. Enterprise Application Integration
The process of linking applications within a single
organization together in order to simplify and automate
business processes
While avoiding sweeping changes to existing applications
6. File Transfer
Applications export and import files
Use various formats, requiring translation
Often loaded manually, infrequently
Affectionately known as ETL or SSIS
7. Shared Database
The mastermind of the axis of evil
Data is tightly coupled to multiple applications
Incremental, partial upgrade of application impossible
Primary reason for “forklift upgrades”
8. Web Services
Requires service to be available at invocation
Results in multiple call stacks, consuming resources
Yet another Remote Procedure Call (RPC, COM, CORBA)
12. Defined Data Format
Mutual contract between producer and consumer
Internal formats remain private
Integration code remains at the edge of the application,
preventing internal changes from impacting the interface
14. Minimized Coupling
Additive model reduces change to existing systems
Reduces dependencies, increasing service reuse
Enables isolated testing of services
20. Self Contained
A pure and complete representation of a specific event
No references to other data sources
No need to time sync to an additional source
Reduces dependencies, loosens coupling
23. Execution Events
Define the process flow
Order Coffee
Customer placed an order for coffee
Present Coffee
Coffee handed to customer
24. Lifecycle Events
Bookends around the process
Preparing Coffee
Barista began preparing a coffee
Coffee Prepared
Barista finished preparing a coffee
25. Management Events
Time period elapsed, Range or limit exceeded
Order Guarantee Exceeded
Your order within five minutes, or it’s free
Caffeine Junkie Alert
Orders of ten or more coffees require approval by FDA
26. Business Events
Found by observing the natural order of the business
Coffee Order Fulfilled
A coffee was ordered, prepared, and delivered
Material Shipment Arrived
Beans, milk, and cups delivered by brown
28. Event Driven Architecture
A method of building enterprise systems in which events flow
between decoupled components and services
A maintainable, sustainable, and extensible model for
building complex, distributed applications
Well suited for asynchronous, unpredictable environments
33. Autonomous Components
Triggered in response to an event
Independent - no coupling to event producer
Self-governing - makes decisions on how to react
Self-controlling - responsible for execution context
Self-contained - not part of an application
35. Event Consumers
Subscribe to events by topic/type/selector
Handle events asynchronously
No performance penalty for additional consumers
36.
37. 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