- Understand event-driven architecture pattern
- Apply event architecture pattern to a web application model
- Types of event-driven architecture pattern
- Analysis of patterns
- Implementation of a simple light-weight event system
- Nolen, David. Clojure Script or How to Run Lisp Everywhere.
- Nolen, David. Om Next.
- Richards, Mark. Software Architecture Patterns. Chapter 2: Event-Driven Architecture.
- Asynchronous and distributed pattern
- Decoupled single-purpose event processor
- Send/receive and process events
- Good for multi-step events requiring orchestration
-
Four components working together
- Event Queues -- as events come in they are placed on a queue and this queue delivers them to the mediator
- Event Mediator -- receive initial events from the queue and orchestrate the event from one channel to the next
- Event Channels -- manage and control the event processors by generating processing events
- Event Processors -- executes the processign events
-
Event Queue can be anything: message queue, web service endpoint, etc.
-
Two types of events
- Initial events
- Processing events
- Event mediator implementations
- Opensource integration hubs
- Business process excution language (BPEL)
- Good for simple processing flow
- No centralized mediation
- Sequence A, Sequence B, Sequence C
-
Two architecture components
- broker -- contains all event channels
- event processor
-
Notice that there are no global queues and there are no initial events
- Complex because of asynchronous
- Distributed computation and coordination
- Failure and recovery consideration
- Maintaining event processor roles and responsibilities
- Standard format
- Agility
- Ease of Deployment
- Testability
- Performance
- Scalability
- Ease of Development