Event Processing Languages and the Nonsense about SQL

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.


5 Responses to Event Processing Languages and the Nonsense about SQL

  1. Opher Etzion says:

    Hi Tim – you forgot to mention that one can do everything in Turing machine 🙂

  2. Tim Bass says:

    Hi Opher!

    Yes, just because they are technically feasible, Turing machines were never envisioned to perform any practical computing. So, it is also quite nonsense when folks argue their EPL is “Turing Complete” when they are advocating their SQL-ish language as the do-all, be-all EPL.

    Yours faithfully, Tim

  3. Louie Lovas says:

    Love the analogy:

    … use SQL for writing an event handler for the wonderful mouse we use …

  4. peter lin says:

    One potential solution is to have modular language, which allows extensions and sublangauges for event processing. In the rules world, RuleML takes that approach to handle different kinds of logic from Datalog to First Order Logic. I’m not an expert at designing languages, but it should be feasible to do something similar.

    That way, the base language can cover the parts that are well understood today. As things mature, sublanguages for specific subdomains can build on through extensions. might be a crazy idea.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: