Louis Lovas, a distinguished Progress Fellow, and one of the event processing implementation gurus at Apama has been doing a fine job discussing and debating why SQL is suboptimal for many classes of event processing problems.
His latest contribution to the community, Taking Aim, does a great job responding to a earlier rebuttal to his post on SQL and its suitability as an EPL for CEP. I agree with Louis and look forward to his views on the usability and scaleability on graphical models, tools and visual design studios for designing complex event processing applications.
One of the problems, as I see it, is the misconception that CEP is a technology that will be dominated by database programmers in the future. CEP is not intrinsically a database application architecture. CEP is a solution architecture for solving complex problems in real-time where databases and similar transactional processes are a part of the overall solution, not the whole.
There are certainly many classes of CEP solutions where SQL and extended SQL can be effective. On the other hand, there are dramatically more CEP applications where a more expressive, functional and modern language is appropriate. After all, John Bates did not conceive and design a better language for event processing because he had nothing better to do at Cambridge University!
OBTW, TIBCO Software, also known for being very innovative and technologically savvy, did not select SQL as their EPL either.
Most of us would never dream of using SQL for writing all possible permutations of event processing applications no more than we would use SQL for writing an event handler for the wonderful mouse we use for browsing the Internet everyday.
Then again, there are always folks that might argue we don’t need calculus because we have math; and we can, in theory, do calculus with only add, subtract, multiply and divide. No wait! We really don’t need multiply and divide, because we can multiply with addition and divide with substraction, so let’s toss out multiply and divide as well!
Some might even argue that we don’t need C, C++, or Java because we can write it all in assembly language. (Actually, I have heard this argument more than once in the past – believe-it-or-not!)
Let jump to the bottom line. It is simply nonsense, in my opinion, for anyone to argue, no matter how technical, detailed or pedantic, that SQL is the only processing language for all event processing applications.