A common diagnosis of many troubled app dev shops is that they don't understand the business well enough. The result is developers build applications that don't quite satisify the business needs, are hard to change, have poor user experiences, are not delivered on time, or any combination of the above. Despite all the silver bullets over the years such as formal methodologies, new roles, tools, and technologies, app dev shops remain largely afflicted. According to a survey I conducted last year, application developers concur that a common characteristic of great application developers is that they have a deep understanding of the business domain. Understanding the business does not mean you read the docs. It means you know the business in your bones.
The founding Fathers of the United States understood all too well the importance of complex events when on July 4th, 1776 they wrote:
"When in the course of human events it becomes necessary for one people to...etcetera, etcetera, and etcetera".
Similarly, many of today's business and IT leaders understand the importance of reacting to business events as they occur in real-time and how that can dramatically change the performance and agility of their business.
Event processing, often called "complex event processing" (CEP) is a hot new enterprise middleware category. CEP answers the question: "What is happening right now in our business"? Sometimes the answer is as simple as ordering more products when the inventory dips below safety stock, but often it involves recognizing patterns of business events that foretell critical business situations that require immediate action.
CEP platforms analyze streams of data as they flow from live sources such as transaction flows, click streams, market data feeds, and myriad other sources of data swirling around inside a business environment. The platforms then prompt either downstream applications or people to react to the information by resetting processing priorities, changing online sales strategies, buying and selling stocks, or performing some other action.