Tuesday, January 18, 2011

Event Producers and Consumers

Event processing is a subject as broad as all of data processing; however, the infrastructure that is unique to events and event messages is essentially simple. This simplicity, which I will bring out in various posts to this blog, stands in contradiction to the prevailing paradigm known as Complex Event Processing (CEP). This post will present a very high-level architecture of an event processing infrastructure that has a universal application because of its very simplicity. Its simplicity is presented as challenge to the currently prevailing but awkward solution known as CEP.

Event processing is essentially about event producers, event consumers, and the messages that are transferred between them. It is not about the numerous possible ways that producers generate the event message and it is not about the infinite number of ways that event data is processed by event consumers. Event processing is ultimately about how producers can transfer information about a given event to consumers.

Event producers are software components that record the occurrence of an event in the physical world. They may be drivers that support the input of data from drivers and keyboards, or they may clock-driven programs that find geographical position and other information on a periodic basis. The production of events must be left to a universe of possibilities and not limited by a certain field of inquiry.

Event consumers, on the other hand, are software components that can only be defined by the fact that they receive messages representing events and consume them in their own processing. To say more about consumers would open the door to all data processing – they are capable of doing any kind of data processing task once they have received an event message and what tasks they perform cannot be the business of any definable event processing infrastructure.

To be a viable field of IT, event processing must set aside the infinite possibilities of how events are produced and consumed. It needs to limit itself as an IT solution to the delivery of event messages from the undefined producers to undefined consumers. This gives it universality as well as simplicity. Everything beyond the boundary of event messages and their endpoints opens the door to every requirement in the universe of IT.

In fact, the function of the event processing infrastructure should be to make the various producers and consumers as independent of each other by preventing them from becoming tightly coupled to each other. Producers should construct event messages without having to have any knowledge of the universe of message consumers that they could potentially serve. In turn, event consumers need to be able to consume events messages without having to have specific knowledge of their origin. Finally, both producers and consumers need to be as independent as possible from the actual event messages themselves. Allowing event producers and consumers to be developed and operated independently from each other should be the primary function of the field of event processing.

As shown in the diagram above, the essence of the event processing infrastructure being designed here is a simple publish-and-subscribe router that enables producers to serve consumers without being tightly coupled to them. Event producers only need to know about the universal router where they send messages. Consumers can subscribe to the event messages without being tightly coupled to the producers. In later posts we will see how both producers and consumers can be made largely independent of the event messages themselves.

Event processing is essentially the infrastructure that makes producers, consumers, and event messages uncoupled from each other. At the center of the infrastructure is a router that serves to make these components independent of each other and thereby allowing the components to be adaptable and agile.

Wednesday, November 24, 2010

The Essence of IT

All information is essentially about events. The data that we compile may be perceived as attributes and relations about things, but, in essence, each datum added to our growing world of information is an observation about an event. We exist in a four-dimensional space-time and the facts that give us information about that space-time continuum, reduced to their essential atoms, are events. In the same way that a point in three-dimensional space is a location, each point in a four-dimensional space-time is an event. This blog is about the future of information processing as the accumulating, aggregating, and pattern-finding of events into higher levels of data, knowledge, and, ultimately, wisdom.

We will explore how events, those points in space-time, can be harnessed by us to usher in a new world of business insight. Pursuant to this endeavor, we will develop a universal architecture for the processing of events. Our design will demonstrate how the information needs of every kind of business, from real-time manufacturing to internet analytics, can be served by its utter simplicity.

This approach to event processing, however, will diverge greatly from the current orthodoxy know as Complex Event Processing (CEP). CEP is well documented in such works as The Power of Events, by David Luckham, Event Processing: Designing IT Systems for Agile Companies, by K. Mani Chandy and W. Roy Schulte, and Event Processing In Action, by Opher Etzion and Peter Niblett. These very well written works all contain the same limitation – they require event processing to be complex while, conversely, it must be simple to become a major contributor to our world of information. While the existing literature finds complexity to be a necessary part of empowering event processing, it will be demonstrated here that this complexity is inhibiting its universal adoption, leaving the information processing world wanting for a simple solution.

By applying Occam’s razor, and making event processing only as complex as it needs to be and no more complex, we will develop an architecture that makes it irresistible to business analysts, IT professionals, and accounting staffs. In following posts to this blog, we will discover an architecture that, while consisting of only one universal event type and a simple configurable event router, will take the complexity out of Complex Event Processing and make the atomic facts of our four-dimensional world the foundation of all IT.