Author: Opher Etzion & Peter Niblett
Publisher: Manning, 2010
Aimed at: Software architects, managers
Pros: Easy to read
Cons: Too abstract, makes the simple seem difficult
Reviewed by: Mike James
This is a waffley sort of book that you can read if you want to pretend to be doing something without having to work too hard. It's about event driven architecture but not low level event handling and processing that characterises the modern UI - this is about large scale system architecture.
It starts off looking at the basic ideas of event processing. This is so simple that if you are a programmer you probably don't need to read it and if you aren't a programmer why are you messing about with this sort of stuff? All of the buzz words get thrown in - Business Activity Monitoring, Business Intelligence and so on. We have brief mentions of message passing middleware and so on all as if the technology was to be described as some sort of philosophy.
Chapter 2 gets a bit more technical with a look at event processing but again it deals with everything at a level of abstraction that isn't really useful if you are trying to get anything done.
Part 2 of th book is titled "The Building Blocks" - perhaps now we get to something less abstract - but no. Chapter 3 goes in for more philosophy in defining the event.. Then Chapter 4 deals with producing the event and we have more categorisations of the extreemly general. Chatper 5 deals with consuming the event and Chapter 6 is on the event processing network.
It's not that the definitions are meanless - it's just difficult to see how they help in a specific situation. For example an Event Channel is:
a processing element that receives events from one or more source processing elements, makes routing decisions, and sends the input events unchanged to one or more target processing elements in accordance with these routing decisions.
So how am I better off after this definition?
Chapter 7 is on putting events into context. For example
Temporal context - consists of one or more time intervals possibly overlapping. Each time interval corresponds to a context partition which contains events that happen during that interval.
again - how does this help?
Chapter 8 is on filtering and transformation and I won't bore you with a definition of a filter expression - you can guess. Chapter 9 gives us some event patterns and we have more definitions -
The absence pattern is satisfied when there are no participant events. The matching set is empty.
Part 3 is on pragmatics and it opens with a chapter on implementation considerations. Here there are some references to real languages - but only for a brief moment - we are quickly back to making lists and definitions. Finally we have Chapter 11 which deals with today's event processing challenges.
As a hands-on programmer perhaps I'm the wrong person to review this book and maybe it's brimming over with hot information for software architects or, more likley, not-very-technical managers. If this is that case then I'm seriously worried about the future state of the technology.
It is not so much that this is a bad book of its type - it's well written and well organised - but it is on topic that abstracts systems design to the point where there is little left but the definitions and an academic approach. This is abstraction either for the sake of it or even to make the relatively easy seem more difficult. If this sounds like the sort of thing you need to read up on then perhaps you will get something from it.