Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs

Event-driven services in SOA

Design an event-driven and service-oriented platform with Mule

  • Print
  • Feedback

Page 2 of 7

Overview of event-driven architecture

An event-driven architecture (EDA) defines a methodology for designing and implementing applications and systems in which events transmit between loosely coupled software components and services. An event-driven system is typically comprised of event consumers and event producers. Event consumers subscribe to an intermediary event manager, and event producers publish to this manager. When the event manager receives an event from a producer, the manager forwards the event to the consumer. If the consumer is unavailable, the manager can store the event and try to forward it later. This method of event transmission is referred to in message-based systems as store and forward.

Building applications and systems around an event-driven architecture allows these applications and systems to be constructed in a manner that facilitates more responsiveness, since event-driven systems are, by design, more normalized to unpredictable and asynchronous environments.

Benefits of event-driven design and development

Event-driven design and development provide the following benefits:

  • Allows easier development and maintenance of large-scale, distributed applications and services involving unpredictable and/or asynchronous occurrences
  • Allows new and existing applications and services to be assembled, reassembled, and reconfigured easily and inexpensively
  • Promotes component and service reuse, therefore enabling a more agile and bug-free development environment
  • Short-term benefits:Allows easier customization because the design is more responsive to dynamic processes
  • Long-term benefits:Allows system and organizational health to become more accurate and synchronized closer to real-time changes


EDA and SOA together

Unlike a request/reply system, where callers must explicitly request information, an event-driven architecture (EDA) provides a mechanism for systems to respond dynamically as events occur. In an EDA, events are published by event producers, and event consumers receive events as they happen.

Business systems benefit from the features of both an SOA and an EDA, since an EDA can trigger event consumers as events happen and loosely coupled services can be quickly accessed and queried from those same consumers.

For systems to be most responsive, they must be able to quickly determine the necessary actions when events are triggered. To this end, events should be published and consumed across all boundaries of the SOA, including the layers of the architectural stack and across physical tiers.

Figure 1 illustrates possible events that can be triggered across layers of an architectural stack:

Figure 1: Event flow across architecture stack. Click on thumbnail to view full-sized image.



In the context of Figure 1, an event can be defined as any published change in a system, platform, component, business, or application process. Events can be high-level and business-oriented, or low-level and technical in character. Because events can be transmitted and received, event-aware applications and services can respond to the underlying changes as needed.

  • Print
  • Feedback

Resources