Friday, October 03, 2008

EDA versus CEP (and SOA)

CEP (Complex Event Processing) correlates multiple messages within given time frames. EDA is an architectural approach to model information systems from a business event perspective. EDA differs from SOA by its focus. SOA puts services at the center of the model and EDA does so with business events. The SOA-approach tends to result in a synchronous communication style and the EDA-approach in an asynchronous communication style.

CEP is not about business events by definition. CEP is a technique to process message streams. These messages do not need to represent business events. A business event is something that happens (change of state) where your business has planned to react upon in a predefined way. A business event is represented by a message, but not all messages are representations of business events. CEP is about messages, EDA is about business events.

CEP can be used to implement EDA. You might say: EDA is CEP at the business level. The business can be seen as a complex event processor which holds states, reacts on state changes and correlates business events. Every living organism behaves like a complex even processor, also humans. The only thing we do all day is react on (correlated) events. That's why the paradigm is so powerful, because it is a natural instinct. Current technologies like ESB, XML, SOAP, JMS and globally adopted communication standards including WS-*, enable and boost real-time event processing at the business level. The collection of these real-time business events is the representation of the business dynamics at this very moment. And these dynamics can easily be made visible (BAM), if... you model your systems around business events, EDA.

I think EDA will definitely and radically change the way we currently look at business applications, including SOA.


Anonymous said...

I have always perceived CEP as a more analytical approach to events, where the large numbers of events count, whereas EDA would be about acting on individual events.

Am i mistaken?

Jack van Hoof said...

Hi Eelcoh,

CEP is about correlating and processing events (or more precise: messages from streams), whereas EDA is an architectural approach where your starting point of design is business events (as compared to business services in SOA).

CEP is not necessarily about business events and mostly is used in the context of large numbers of messages. On the other hand, from an EDA perspective your business is viewed as an Complex Event Processor.


Anonymous said...

Can I say the part of handling to direct exchange connectivity or FIX connectivity a CEP engine?

There are many different types of messages and they have a way/protocol to work with. Inside the engine, state machine may get involved.

Tony said...

Looking at this post 3 years later, what are your thoughts about EDA?

Jack van Hoof said...


My thoughts are not very different now. What I now realize more than three years ago, is that it is extremely hard to extend the mindset of "legacy thinkers" who stick to their old values as the only valid truth. This keeps us from maturing.

Joseph Umbao said...

This idea that an event-driven architecture is more than a technology stack and includes a focus on sense-and-respond, is critical, I think. It is also why I think decision management plays such an important role here. The business landscape is already resonating and radiating with EDA paradigm, thus,its seamless and spontaneous performance goes a long way in establishing and evolving resilient and versatile system.

Unknown said...

Looking at this post 7 years later, what are your thoughts about EDA? :)

Jack van Hoof said...

Well, CEP is breaking through, and EDA will follow (perhaps) at the level of microservices and API's on behalf of mobile applications (I believe). :-)