Saturday, October 22, 2011
On use of event processing in routing
Eric Roch, chief technologist of Perficient posted a question about the use of event processing for message routing rather than ESB, the router pattern is taken from the enterprise integration patterns by Gregor Hohpe and Bobby Woolf that we cite several times in the EPIA book. Roch mentions several reasons to use event processing, some of it relates to non-functional characteristics such as low latency, and in-memory management.
I think that there is some continuum that relates to the routing requirements - some of the routing decisions are quite simple, they are based on a predicate, typically on a value of a single attribute; some are more complex, and the routing is determined according to a pattern that involves multiple messages, in other cases the routing decision might involved a structure like decision-tree or decision-table, yet in other cases the routing is determined according to probabilistic reasons.
The better solution is not to have ESB and EP systems in isolation, and chose in each case what should be used, instead it is better to use a single programming model that includes all types of routing, and autonomic translation to implementation in various building blocks, some of them are taken from event processing and some from ESB or traditional messaging systems, this is the approach I prefer for event processing in general, not stand-alone, but synergistic with other technologies. In 2008 I had a posting about event processing and ESB, arguing that ESB is a natural carrier of event processing within a SOA architecture, and indeed I think that we'll see more and more ESB products that are enriched by event processing capabilities.