Does event driven architecture (EDA) represent the next phase of SOA? This is a subject of continuing debate, but Udi Dahan makes the case for EDA as the next logical stage of SOA. In a recent post, he connected the dots between SOA and EDA, suggesting that EDA will shift the inherent nature of SOA.
Dahan makes his case thusly: SOA is currently based on a "commonly used request/response communication pattern of service consumer to service provider in SOA," in which the consumer delivers the command, and the provider service responds accordingly. "Commands are often named in imperative, present-tense form—for example, 'update customer' and 'cancel order.'”
With EDA, this relationship gets reversed, he points out:
"In EDA... Consumers do not initiate communication in EDA; instead, they receive events that are produced by emitters. The communication is also inherently unidirectional; emitters do not depend on any response from consumers to continue performing their work."
Developing an architectural approach that employs both SOA and EDA principles will go a long way toward better so-called "business-IT" alignment, Dahan observes. The fusing of the two approaches may be the key. Either approach alone won't do it. As Dahan illustrates:
"Architects can explain to the business the ramifications of their architectural decisions in ways that the business can understand—'There might be a couple of seconds during which these two bits of data are not in sync. Is that a problem?'—and the answer to those kinds of question is used to iterate the architecture, so as to bring it into better alignment with the business."
SOA and EDA have been moving closer in recent years, as companies start to understand the value of event processing to ongoing operations and opportunities.