Book Review - Event Processing in Action
Disclosure: I received a review copy of Event Processing in Action from Manning.
I started this reviewing kick a little while back with Manning’s Continuous Integration title and, enjoying the experience, decided to continue with additional reviews for the foreseeable future. To get the most out of the experience I’ve decided that wherever possible I should review titles that do not directly relate to the things I work on as part of my day job in order to broaden my horizons a little. The most recent title in my repertoire is Manning’s Event Processing in Action by Opher Etzion and Peter Niblett.
Background
Let me start by saying that, other than a rudimentary understanding of the base concepts, I began reading the title with a sum-total of zero knowledge of formalized event processing. I currently work in the healthcare industry and can see many practical applications of such a formal approach – from medical equipment monitoring patient health to reception of third party lab results, medication orders etc. it seems that a lot of what we do is essentially event processing – but we don’t always treat it as such.
My Expectations
- Define the basics
- Explain why event processing would be beneficial to me
- Provide advice based on real world experience
The Book
In short this book is a substantial body of effort, extremely well written and detail-oriented. I wouldn’t call it enjoyable reading per se - it is not a particularly sexy topic to begin with – but definitely a worthwhile read.
Event Processing in Action, as expected, starts out with an introduction to the world of event processing – providing detailed definitions of key terms as well as examples of computerized event processing. Event processing applications are then categorized and, most importantly, the authors explain when and why event processing should be used. This is pretty much exactly what I was looking for in an introduction. Moreover, everything was defined with extreme clarity and I was left with very few, if any, questions unanswered.
The bulk of the book deals with the standard building blocks that constitute event processing systems – an attempt to abstract away from a particular language or system and explain the constituent parts of such a system in a generic manner. If I had one reservation about the book it is that it is (mostly) language agnostic – I like to get my hands dirty and would loved to have seen at least a few chapters dealing with the setup and application of a real world system using a real world language – after reading the book I feel pretty well briefed in theory but not so much in real world application. As with the introductory material, the building block chapters go into great detail, discussing event types, consumers, producers, filters, etc. etc.
My favorite section in the book dealt with the pragmatics behind the implementation of an event processing system including engineering and implementation considerations – specifically looking at non functional properties such as security, performance and availability. While this section was more descriptive than prescriptive it was refreshing to read and provided some interesting areas of discussion if/when my organization embarks upon an event processing solution.
Summary
All-in-all this was an interesting and detailed book definitely worth reading. It hit all 3 of my expectations and I feel informed enough to implement and event processing system in my organization. Moreover, the book changed my mentality in terms of how such systems are architected – I think in most organizations there are numerous candidates for event processing systems that were structured in a less natural and less efficient manner. By reading this title, perhaps we can avoid some of the same mistakes the future – or at least have enough information at hand to make appropriate decisions.
Comments
Thanks for your review, as a comment, the book is language agnostic by design. However - we provide in the book a reference to a website http://www.ep-ts.com/content/blogcategory/32/109/
that includes pointers to several languages that have implemented the example that accompanies this book. If you wish to "dirty your hand" just go to the "Languages for event processing" part, chose one of the languages, and get a link to download (hope that all links are still working).
cheers,
Opher