Architecting Event-Driven SOA: A Primer
Events can be described as state changes, such as the change between when one checks their bag to when the baggage system detects it for the first time. This paper deals with the basic of architecting an event-driven SOA by introducing the concepts underlying EDA, and by describing how they can be applied to SOA. Event design is a common problem area for those in the SOA world. While a message (or an entity) is focused on containing descriptive data, such as the name, an event should focus solely on describing a change. In service-/process-oriented design, the implementation usually follows a predetermined (designed) flow. BPEL is a programming language, it is designed for orchestrating services into a flow rather than evaluating a set of state changes, either over a long time or to handle high volume. Event evaluations should be done outside of the process. But once completed if a pattern is detected, a process can be notified through an event to continue its execution. This paper provides examples which shows how to leverage the power of event-driven architecture and take advantage of pattern recognition, high-end loose coupling, and other important aspects of EDA in the creation of a process-centric SOA.