Events vs. Services: The Real Story
Service-Oriented Architecture (SOA) is an approach to distributed computing that considers software functionality as Services on the network. Event-Driven Architecture (EDA) is an approach where events trigger asynchronous messages that are then sent between independent software components. Some people think that these two approaches are different, alternative takes on distributed computing, but that’s not correct. In fact, SOA supports a variety of interactions, many of which are event-driven.
To truly understand the power of SOA, it’s important to keep in mind that SOA represents an abstraction layer that masks the complexity of the underlying technology, including the details of how various pieces of software interact–whether via events or some other kind of message. In fact, SOA allows for a range of approaches depending upon the complexity of the underlying environment.
In complex, heterogeneous enterprise environments, SOA often requires rigorous Service contracts enforced on a reliable messaging infrastructure like those Enterprise Service Buses (ESBs) provide. In more limited situations, however, more lightweight approaches to SOA are more appropriate. Lightweight event-driven approaches like the one KnowNow offers can be the most appropriate, cost-effective distributed computing technique in situations where enterprise SOA capabilities are overkill.