Thursday, October 30, 2008

CEP - A Legend in its own Mind?

In the wake of the current financial crisis, several enterprising journalists have been trying to link the use of CEP, EDA, and SOA with the prevention of further financial woes. I have been sitting back and chuckling at many of these attempts to equate a three-letter acronym with financial salvation, especially ones written by people who don't actually work in finance and have never set foot on a trading floor. However, I cannot remain silent anymore.

I am reading an article that just appeared in Wall Street & Technology magazine titled Wall Street Firms Using CEP to Measure and Manage Risk. Directly under the title of the article is the proclamation:

New complex event processing applications promise to help firms get a better handle on their risk exposure, but can CEP erase Wall Street’s risk management woes?

This is an example of the sensationalistic headlines that have been crossing the various blogs and trade magazines in the past few weeks. All of a sudden, CEP has become a three-letter word for Financial Nirvana.

People .... I have news for you ....

CEP systems are simple tools. They take streams of data and produce some output whenever something in the streams fit a certain condition. That's all it is! CEP systems do not do predictive analysis. They won't tell you when you will be losing money in the future.

They are like compilers. Saying that CEP can help with risk management is the same thing as saying a C++ compiler can help you with risk management. CEP products and C++ compiler are merely tools. You are supposed to be providing the logic and the interpretive abilities.

All banks have risk management systems, and most (if not all) have NOT been written using CEP products. Most of them are old, legacy systems written in C++. And, most of them do the same things that CEP products do. They take real-time streams of market data, positions, trades, and P&L, and they crunch them together to produce some useful output. And believe it or not, they work well despite the fact that they are not using commodity CEP technology!

And, many risk systems are run as an end-of-day processes. They are not real-time. They produce management reports which are read every morning. It is not the fault of the risk management system or the underlying technology if management chooses to ignore a risk report or chooses to put on an exotic trade whose risk can't be measured, or chooses to go all-in with subprime mortgages.

Risk management systems were here long before CEP became a buzzword and will remain long after all of the commodity CEP products have vanished.

I can imagine that, with the journalistic feeding frenzy associating CEP and risk management, smart marketeers like Terry Cunningham, Mark Palmer, and Don DeLoach are grinning from ear to ear. Not only grinning, but also doing their bit to fan the flames, as any smart entrepreneur would do.

Let's look at the article a bit.

But CEP vendors say their software can give risk managers a better view of such counterparty risk. "No software can replace [good] judgment," says Jeff Wooten, VP of Aleri. "What [CEP] software can do is give you better information with which to make those judgments and a better understanding of where you stand."

Ugh. Why could a system written with Aleri give you a better view of your risk than a custom-coded system? Will Aleri help you write more sophisticated detection rules?

Undoubtedly, Aleri will enable you to write a new risk management system much quicker than if you were to code one from scratch. But, I don't see that the CEP system will give you "better information". (To be fair, since Aleri has a real-time OLAP product, you might get better information by using the Aleri-specific visualization tool. Maybe that is what Jeff was implying.)

"Our software can't help you predict what's going to happen with your counterparty; it can't help you predict that Lehman will declare bankruptcy," Wooten adds. "But it can help you know what your exposure to Lehman is."

Knowing your exposure to Lehman is conceptually a very simple task that can be done without the help of a CEP system. However, what if your exposure is tied up in complex derivatives? How would a CEP system help you there? I am pretty sure that all of the people who lost money in Lehman bonds knew precisely what their exposure was, without the help of a CEP system.

"It's predictive; it's [based on] probability and in some cases the CEP engine will grab something it doesn't need," Greene acknowledges. "But when you look at more-complex instruments that can take weeks or months to settle because of issues on the back end, the CEP engine that can help them automatically grab information ahead of time behind the scenes speeds that up."

Hmm ..... Can anyone decipher Spence's words for me? I think that Spence is kinda hinting about what I mentioned above, with the complexities involved in figuring out your P&L based on very complex structured products. But I would like to know exactly how Tibco Business Events assists in figuring out this exposure, and why it would be harder to do if you were to use some custom code or Excel.

Despite CEP vendors' promises, though, there are those who feel the value of CEP technology to risk management is finite, pointing to limitations of the technology itself and to the fact that risk management involves more than looking at numbers.

Bingo! And, directly after this statement, Tim Bass weighs in with some of his very correct opinions.

Another dissenting voice is Miles Kumaresan, head of quantitative trading at proprietary trading firm TransMarket Group. "The problem we have right now is the credit market, and that has nothing to do with complex risk models," he told WS&T in late September. "To do risk assessment you don't need CEP. It's much more important to actually use the risk numbers that are already available."

Double Bingo!

CEP vendors sell a tool. This tool enables you to take various real-time streams of data, and allows you to correlate the various streams in various ways. They are very useful tools. But, if you have a working risk management system, you don't need to go out and start rearchitecting your systems right away. The current crisis is bigger than any risk management system. No risk management system would have stopped SAC and Greenlight Capital from losing billions of dollars on the Volkswagon short squeeze. There is a herd mentality on Wall Street, and CEP/SOA/EDA was not going to stop SAC from accumulating this particular short position.

Where would a CEP system be useful? I might use CEP if I would build a new risk system that aggregates output from other legacy risk systems in order to present an enterprise-wide view of risk. I would use CEP to build a brand new risk management system, but only if I could not find one from a vendor that fit my needs. (And, if I might allow myself to jump on a fashionable buzzword, I might eventually find risk management applications in "the cloud", maybe as a service offered in Microsoft Azure?)

CEP, SOA, EDA are concepts and there are tools that implement these concepts. Don't ever mistake them for something that will give you immediate safety from all of the wolves out there.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Saturday, October 25, 2008

New Coral8 Users group on LinkedIn

There is a new "Coral8 Users" discussion group on LinkedIn. Please consider joining if you are a user of Coral8 or are interested in learning more about coral8.

Please note that this group is not being sponsored by Coral8 in any way. This is a user-sponsored group. It is a way for Coral8 users to help each other and to discuss Coral8 without involving the staff of Coral8 at all.



©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Forays into C++

We have a C#/.NET-based Reuters market data adapter that we wrote ourselves (well, actually, I wrote it). This is an out-of-process Coral8 adapter that reads real-time ticks from RMDS, turns then into Coral8 tuples, and feeds them into our Coral8 engine. The adapter has two caches in it, and since market data is last reliable, we can publish the last-reliable ticks from one of the caches at specific intervals.

When we hooked the market data adapter up to our Coral8 engine, we started seeing an immediate backup in the pending message queue. We were sending Coral8 about 3000 ticks per second. In addition, our Coral8 engine was processing our order flow, which could hit a max of another 3000 messages per second.

My first thought was that it was taking too long for Coral8 to deserialize the market data tuple, so I wanted to transform our market data adapter from an out-of-process adapter to an in-process adapter. Unfortunately, in-process adapters have to be written as a vanilla, Win32-based C/C++ DLL.

I grew up on C++. However, I have not touched a lick of C++ since diving into .NET in 2001. I was scared. I was frightened. However, I know that my teams needs some experience in writing in-process adapters for Coral8, and since my team consists of very strong .NET and Java people, I decided to bite the bullet and take one for the team.

Man, oh man! I can't believe how much I had forgotten! Strange symbols like '*' and '->' were coming from my fingers. Compilation errors sprang up everywhere. There was no Resharper to help me along. Linker errors to strange obfuscated functions that I swear I never wrote started appearing in the error window.

Perhaps I need to use a little bit of extern "C" here? Maybe there? Maybe everywhere!

Where was my .NET Thread class? Where was System.Timer? How do I do events? There is a new kind of pain that you have to go through in order to get callbacks to work within templated C++ classes. It took me hours to get simple callbacks to work.

Finally, after two days of work, I got the market data adapter ported over to Coral8. To start with, let's try reading the ticks from a flat data file instead of from Reuters. Whew, it works. I see the ticks appearing in the Coral8 stream viewer. Now, let's try Reuters. After a bit of tweaking and some crashes on the destructors, ticks are finally coming in.

Then, I get an email from our Coral8 developer telling me that the reason why the market data feed was slow in Coral8 was because of one of those mysterious coral8 queries that he wrote that clogged the system! So, my inproc adapter was not needed anymore. Market data was now zooming through our Coral8 engine.

Nevertheless, it was a fascinating experience to return to my C++ roots from a 7-year hiatus in the .NET world. Never again!




©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Coral8 and Performance

From the head of our CEP engine development team (used with his permission) :

I'm pleasantly surprised at how fast c8 is when one gets it right. (On the other hand, one misstep and performance goes over the cliff.)


This is one of the main problems with the variants of Streaming SQL that you find in many of the CEP engines. It is not at all transparent what goes on under the hood of all of the CEP engines when you are writing complex queries in Streaming SQL.

Unlike Microsoft, where you find very good profiling tools in SQL Server, the CEP vendors do not provide the necessary tools that will enable a developer to isolate bottlenecks. This has been an issue with Coral8, which they recognize and hope to remedy in the future.

Every time that I've cursed out Coral8 for what I might think is lousy performance, it has turned out that it was us that managed to write a query that clogged the engine. And, when you clog up Coral8, it can bring an entire machine down very quickly as the pending message count builds up.

The important thing is about choosing a CEP vendor is the level of technical support, and despite some turnover in Coral8's tech support staff (goodbye to the excellent Trahn), we have been able to have access to their chief architect and to the head of development when we have really gotten ourselves into trouble. Coral8 also recently hired a New York-based support person who used to be an architect with Gemstone. So, even though it will take this guy some time to get up to speed with Coral8, we are glad to have a local person to help us when we need the assistance.

Coral8 has just released version 5.5, which will be a major help to us in terms of real-time OLAP and entitled subscriptions. It is a major release that will force us to refactor some of our code. But, it is good to see that Coral8 is making it easier for us to implement our real-time dashboards where every user can possibly be entitled to see a different view of data. I feel that support for real-time OLAP is going to be a major selling point for CEP systems, as it is *really hard* to implement it totally on your own.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

CEP Updates from the Front

It feels like forever since I was able to find the time to blog last. There are millions of things to write and so little time.

We finally rolled out our CEP system to the heads of the Equities Trading department. It is sitting on the desks of the Head of Equities Trading and the Head of North American Trading, and will start to be rolled out to the individual traders in short order.

The CEP system gave us a nice "victory" last week. One one of the very big volume mornings, our system was showing that a certain customer type was not buying any financial stocks. The Head of Trading came to us and told us that our system was showing wrong data. Then, he started to call around to his individual traders, and what'dya know ... this customer was not buying financials.

So, it seems like our system is already starting to give the department heads the insight into trading activity that they haven't had before. And, it is giving them the information in a totally new visual paradigm that is so far away from the simple flashing grids that most traders are used to.

We have just started to integrate market data into our system ... but that's the subject of my next blog posting.

The big steps for 2009 will be to start to take our system global. This means having region-specific instances of CEP, and having each region feed into a central CEP hub in order to let people do cross-region correlations. This will bring us new challenges in terms of data quality, as we will have to deal with unifying symbologies, currencies, compliance issues, and more.

... Of course, this is assuming that we all have jobs next year!





©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Thursday, October 09, 2008

Orange Widgets

A recent posting from Jack Rusher of Aleri reminded me about Orange. I had looked at Orange a few months ago very briefly, but it looks like, over this past summer, the Orange Project ramped things up and put out the first official version of their system.

This looks a lot like what I want to do with a Yahoo Pipes-like system. The guys from the Microsoft Oslo team should also read this and see if they can get any additional inspiration. (It's nice to see that Aleri is also looking at this stuff ....)

I will be reading further to see what it would take to come up with an input adapter for Orange that can read a Coral8 tuple. Hopefully, they already have adapters that can read from SQL Server and KDB (yeah, right!)

And, what about Orange's capability to analyze real-time data? Can we put order flow through Orange? Do we have to aggregate order flow and feed Orange at one-minute intervals?

Visual tools for data mining are starting to become more and more widely used. There are tools like Tibco Spotfire and Tableau that are used a lot in Pharma and Financial Services. (There are some new ones on the horizon that I cannot talk about that makes these tools seem like MS-DOS prompts). But, Spotfire and tableau really do not handle real-time flows of data.

The elusive goal is to provide great visualization for true, real-time OLAP. On my CEP team, we had to write a custom real-time OLAP GUI ... how long before these kinds of tools become commoditized?



©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Wednesday, October 08, 2008

New Aite Report Slams Microsoft's Capital Markets Partner Program

A blog reader sent me this link to a new report by The Aite Group.

Below is a copy of the report summary from the Aite website. I will comment further in another blog posting.



Of vendors engaged with Microsoft's Capital Markets Partner Program, 55% rate Microsoft's overall satisfaction with the relationship as mediocre or poor.

Boston, MA, October 6, 2008 – A new report from Aite Group, LLC evaluates the effectiveness of Microsoft's Partner Program as a capital markets vertical strategy within a horizontal company. The report outlines what vendors engaged in a partnership with Microsoft can expect, best practices for other horizontal vendors looking to focus on capital markets, and ways in which vendors and capital markets firms can maximize their technology investment in Microsoft.



The report is based on interviews conducted with 21 partners in the Microsoft Partner Program who all offer capital markets solutions, as well as current and former Microsoft employees, customers, and non-partners working with Microsoft Capital Markets. Aite Group found that Microsoft's strategy of developing its vertical partnership program may have hurt its reputation, as 55% of partners in this program rate their overall satisfaction with Microsoft as mediocre or poor. Though Microsoft is criticized for its lack of knowledge of the capital markets vertical, it is viewed favorably for its architecture and engineering, as well as for its technical support.

"While Microsoft's horizontal rivals, including IBM and Oracle, were busy building capital markets offerings through acquisitions, Microsoft maintained a partner program whereby it supplied the underlying platform upon which other software providers could build vertically specific solutions," says Adam Honoré, senior analyst with Aite Group and author of this report. "As a vertical strategy, Microsoft is not the feared giant it is perceived to be in many horizontal venues. Instead, Microsoft has much work to do before it is perceived as anything other than a mediocre performer in its vertical go-to-market strategy."





©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Tuesday, October 07, 2008

Microsoft Oslo and our App

For some reason, Microsoft seems to think that I am an "influencer" in Wall Street, and that plying me with large steaks and bottles of wine will make me happy (they are certainly correct in the second assumption).

Last night, I had a very nice dinner with Robert Wahbe and Steven Martin of Microsoft. They are large in the Connected Systems Division, which is the group that is overseeing the development of the mysterious Microsoft Oslo product/framework. We had a happy group that included the famous DonXML, Ambrose from Infragistics, Bill Zack, and a charming lady from Waggoner Edstrom whose job it was to make sure that Robert and Steven did not disclose too many of Microsoft's secrets (although I ended up telling them a few little ditties about Microsoft that they were not aware of!).

I have been sworn to secrecy, so I am going to regurgitate what little known facts about Oslo has been leaked out through various blogs. Oslo contains three things:

1) A new language that enables you to create your own Domain-Specific Languages (DSL).

2) A visual modeling tool.

3) A repository for models that you build.


What would we do with Oslo in our CEP system?

We would like our traders to be able to eventually build their own queries/models, and "inject" them into our CEP system. We do not want the traders coding in Coral8's CCL or any other streaming SQL language for that matter. And, we want the traders to play in our "sandbox" without hurting themselves or the other users of the system.

If we could create a high-level DSL that, through the use of some sort of "adapter", was translated into Streaming SQL, then we could give that to the traders. A visual modeling tool would allow them to easily construct models (remember how enthusiastic I was about Yahoo Pipes a few months ago?).

Let's see what Microsoft comes up with, and how soon it will be until Oslo is ready to use on a trading floor.



©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Sunday, October 05, 2008

Benchmarking .NET-based Tranaction Engines (and the LSE)

Although somewhat dated (the infrastructure in from 2004, which can be considered to be light-years in the past), this is a useful read:

Benchmarking a High Performance Real-Time Transaction Engine Design

(Go to the bottom-left of the page, and click on the link that says "View or download")

Even more interesting is the slide deck that accompanied the presentation. Slides 24 to 32 give some insight into the .NET-based architecture of the London Stock Exchange.








©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Has LinkedIn Jumped the Shark?

There are a few annoying tendencies that I have been noticing about LinkedIn for the past several months:

1) Gratuitous recommendations. You open up your Inbox and find that some unremarkable colleague that you worked with five years ago is asking you for a recommendation, and promising to give you a stellar recommendation in return. Usually this ex-colleague is looking to change jobs, and wants to load up on praise. You then have to spend the next 15 minutes remembering what this person actually did on your team, and try to grasp at straws in order to say something positive about him. The verbiage associated with LinkedIn recommendations is always the same. As a potential employer, a LinkedIn recommendation is pure noise.

2) Unsolicited ads and spam on LinkedIn Groups. It seems that new groups pop up every day, taking a simple domain and dicing and slicing it 20 ways. There is a group for Wall Street, a group for Wall Streeters who are left-handed, a group for Wall Streeters who take the subway more than 5 stops, etc. It seems that the moderators of these groups will let anyone who has a pulse into the group.

I joined a group about Wall Street the other day, and the first discussion on the group was from a real estate agent from Prudential Realtors, looking to sell condos and co-ops in New York. Recruiters and outsourcers troll these groups, posting ads for opportunities and peddling their wares, thus avoiding having to pay any fees to LinkedIn for job postings. People like these cheapen the groups.

3) There are a large number of recruiters who send you LinkedIn invitations. Why in the world would I let a recruiter see my contacts? Some of these contacts are fairly high up in the food chain. I don't want a recruiter contacting them. I almost never accept invites from recruiters. There is an implication that, if you have a LinkedIn contact, you know that person and like them enough to let them participate in your network.


LinkedIn is a truly useful tool. However, I think that it has "jumped the shark". LinkedIn needs to give the user additional options to control the increasing amount of spam that is invading the network.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Sunday, September 28, 2008

Always Be Coding

Alex Baldwin's most memorable bit of acting comes in the great movie, Glengarry Glen Ross. In giving a motivational speech to a crew of "salesmen", Baldwin invokes the basic tenet of sales, "ABC".

A - Always
B - Be
C - Closing

My adaptation of this is:

A - Always
B - Be
C - Coding


Even though I have managed teams from 1 to 30 people, I never gave up coding. People are amazed when I tell them that I still code.

The ability to write code is a skill like plumbing or being an electrician .... someone will always need coding done. No matter what industry you are in ... finance, healthcare, media, entertainment, e-commerce .... someone always needs you to write a new system or to enhance an old one.

No matter where I go with management, there are reasons why I still like to code:

1) It is creative and relaxing. There is no feeling like being "in the zone" while coding up a new idea. It is left-brain activity which calms the right side.

2) You produce an objective piece of work. At year's end, you can always print out your reams of source code and show others that you actually accomplished something. You have the feeling that you have created something concrete, like a piece of art.

3) You need to have something to fall back on if things ever get rough. This is important for us folks who have 1 kids in college and another kid two years away from entering college.


The other day, I was standing by the large windows of our trading floor, talking with the head of our Stat Arb department, looking at all of the sailboats going up and down the Hudson River. The head of Stat Arb still codes as well. So does the head of our Derivatives Analytics department. These are both Managing Directors and they are still hacking away.

The head of Stat Arb and I were talking about the recent financial crisis and the ongoing wave of mergers. We were both saying that, if our company ever gets acquired, or if we acquired another company which would make our positions redundant, we could still go off and make a living as coders. A great Java coder (with a bit of KDB knowledge) like Mr. Stat Arb, who has deep financial domain knowledge, might be able to make $1500 a day ... I am not sure if consulting rates have collapsed recently, but I assume that some financial institution would be able to bring him on for a short-term contract. (Maybe someone can let me know what the consulting market is doing these days.) I still see plenty of jobs out there for C# hackers in all sorts of industries ... not only UI jobs, but C# server-side jobs as well.

It rained this entire weekend, as Tropical Storm Kyle passed off the East Coast of the United States. My wife was sleeping, as she was recovering from jet lag, and my daughter was busy doing homework and studying for various tests. So, I decided to do something very foolish, and try to teach myself some WPF (Windows Presentation Foundation).

Our Complex Event Processing system uses WPF for the GUI, and so far, I have left my UI developers alone while they coded the GUI. However, I feel that I need to be able to understand their XAML code at some level. So, I opened Visual Studio 2008 and started coding up some simple screens, experimenting mostly with XAML.

I felt a bit silly in trying to learn a new UI paradigm as my management responsibilities increase at work. However, as I started mucking around with XAML, I started to feel myself get "into the zone" again.

Visual Studio 2008 (without SP1) seems to be a pretty crappy environment to develop WPF apps in. I don't use any other tools, like Expression and Blend. This is a really vanilla WPF development environment. (I hear that SP1 is supposed to enhance the WPF design experience, but I am a bit afraid to install it after reading some of the blogs that detailed some horror stores that occured post installation.)

But, give me a few weeks to explore more WPF. I want to get to the point where I can make some simple changes and do a bit of debugging of our GUI if I have to.

Always Be Coding.



©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Sunday, September 21, 2008

Colin is Building a CEP App

Colin Clark, is starting to blog about OMICRON 5000, a CEP-based order router/liquidity finder that he wants to build. I am not sure if Colin is going to just sketch the system out on his blog, or if he is going to get down and dirty and start coding this thing. But, I will follow his upcoming exploits very closely, as Colin implies that he will keep us informed during every step of the development process.

I don't know what technology platform Colin is going to choose ... Windows or Linux, C# or C++ or Java. If Colin is very public about this new effort, then I might expect some vendors to throw him some complimentary software, as it would be a tremendous marketing coup for the CEP vendor who eventually is chosen.

Colin's evaluation will take place a year after we did our initial evaluation, and I am interested to see how he ends up choosing the CEP engine. Colin is a company of one. *IF* Colin can get his hands on some CEP software, he will not have the same luxury that we did --- 4 months devoted to research --- to make a prolonged evaluation.

Let's see what a company of one can do to get bootstrapped into the world of CEP.

How will Colin get his hands on the CEP software to evaluate? Coral8 is free to download, and it is very easy to get started with their developer version. You can download Aleri, but from what I remember, it comes with a 30-day license. Progress Apama would not let me download their software without requiring a dog-and-pony show. Streambase gave us their software, so I don't know anything about their evaluation process. Esper is totally free (at least, their non-HA version is). I wonder if Paul Vincent will throw Colin a copy of Business Events to play with.

Once Colin chooses a CEP engine, how much will he have to spend to get a production license for the software? Esper is free. The others require a minimum outlay of $60,000, not including yearly maintenance fees. You can play with your downloaded version of Coral8 all you want, but you cannot deploy it into a production app without purchasing a license.

Colin says that OMICRON needs a database. I assume that MySQL is still free, even after the Sun purchase. You need to find a CEP engine that has MySQL adapters.

OMICRON needs a FIX engine. The only free one that I know of is QuickFix. Will Colin build an in-process or out-of-process FIX adapter for his CEP engine?

OMICRON needs market data. OpenTick is free to use, and all you need to do is pay the exchange fees. Worse comes to worse, you can write a service that scrapes Yahoo Finance, but I am sure that will not satisfy Colin (although it is useful for early-stage development).

Finally, Colin needs a GUI. If Colin uses C#/.NET, there are plenty of controls that come with Visual Studio, and there are tons of others that you can find on sites like CodeProject. I am assuming that all OMICRON needs is a simple grid, with perhaps some real-time updating of the cells.

It seems that a single developer can get away with totally free, Open Source software if he was going to choose Esper. There might be CEP engines systems from universities that you can use.

I will eagerly follow Colin's blog and kibbitz on his every move....


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

The SQLDependency Object and Entitlements

Our CEP Servers have to run 24x6. When our server starts up, it reads some tables in our SQL Server 2005 database that contains information about users and the alerts that they are entitled to see. We don't want most of our users to be able to see alerts that occur because of order messages, but we do want our users to see alerts that occur from execution reports.

If we had to query the database for the entitlements on every single alert that flows through our system, we would take a tremendous hit in performance. Therefore, we cache the entitlements in memory and cache the result sets.

We want to be able to change our entitlements on-the-fly, while the server is running. We want to add and delete users, change the method of notification for a user (Tibco, SMS, email, messenger, etc), and add new alerts to our system. We could restrict all changes to the underlying entitlements tables so that the changes would have to made made through an Administrative GUI, but because of the environment inside our company, we cannot. Someone might add a user through the Admin GUI, and others might decide to go right into our SQL Server database and add some new rows to our tables.

We need a way to detect when the entitlement tables have changed within our SQL Server database while our server in running, and have those changes reflected in the operation of our system. We cannot afford to bring our system down, make the changes to the entitlements, and restart our system. We also don't want to wait until the end of the week for the "green zone" period, where we can safely bring down our system, make the changes, and restart the system.

SQL Server 2005 has a class called SqlDependency. This class can be used as an interface between SQL Service Broker and a .NET application to inform the .NET application when a certain query's result set has changed.

Most of the literature on the SqlDependency class revolves around using it in an ASP.NET application. There are also a bunch of things that you need to be aware of, such as restrictions on the syntax of the query that you give to the SqlDependency class. It took a little bit of digging and experimentation for me to get this stuff to work, but after a little while, we found that it did the job nicely.

I have enclosed the source code to a simple EntitlementTableWatcher class that shows you how to use SqlDependency. I have also include some links to URLs that I found useful. If you have any comments about the code, or if you find any bugs, please let me know and I will correct them.



#region Entitlements Table Watcher
internal class EntitlementTableChangedWatcher : DisposableObject
{
// http://msdn.microsoft.com/en-us/library/ms379594.aspx is a good article by Developmentor

private readonly EntitlementModel m_entitlementModel;
private SqlConnection m_connection;
private SqlDependency m_dependency;
private SqlCommand m_command;
private SqlDataReader m_reader;

public EntitlementTableChangedWatcher(EntitlementModel entitlementModel)
{
SqlDependency.Stop(ConnectionString);
SqlDependency.Start(ConnectionString);

this.m_connection = new SqlConnection(ConnectionString);
this.m_connection.Open();

this.m_entitlementModel = entitlementModel;
}

protected override void Free(bool disposedByUser)
{
if (disposedByUser)
{
this.CleanupCommand();
if (this.m_connection != null)
{
this.m_connection.Dispose();
this.m_connection = null;
}
SqlDependency.Stop(ConnectionString);
}

base.Free(disposedByUser);
}

private void CleanupCommand()
{
// In case we entered here from the callback, we need to clean up the last command so that
// we can issue a new command.
if (this.m_reader != null)
{
this.m_reader.Dispose();
this.m_reader = null;
}
if (this.m_command != null)
{
this.m_command.Notification = null;
this.m_command.Dispose();
}
}

public void PollForNotifications()
{
try
{
// In case we entered here from the callback, we need to clean up the last command so that
// we can issue a new command.
this.CleanupCommand();

// Create a new SqlCommand object.
// http://msdn.microsoft.com/en-us/library/aewzkxxh.aspx contains rules for the syntax of the query.
// Make sure that the command has no notification object associated with it
this.m_command = new SqlCommand("SELECT Column1, Column2 FROM dbo.Subscription", this.m_connection)
{Notification = null};

// Create a dependency and associate it with the SqlCommand.
this.m_dependency = new SqlDependency(this.m_command);
this.m_dependency.OnChange += this.OnDependencyChange;

// We want to send a fresh SELECT command to SQL Server on startup and after we receive a notification.
// We use the DataReader to drain the result set resulting from the query. SQL Server will execute
// this command, and set up the entire Query Notification plumbing. SQL Server will execute
// this command internally every once in a while, and will send a one-time event to us when it detects that the
// query has changed. It is up to us to manually subscribe for further events.
this.m_reader = this.m_command.ExecuteReader();
while (this.m_reader.Read())
;
}
catch (Exception exc)
{
Logger.Log.Error("Problem in the Server's entitlement table watcher", exc);
}
}

void OnDependencyChange(object sender, SqlNotificationEventArgs e)
{
// This event firing is a one-time thing ... we have to manually
// reset everything in order to receive another event
SqlDependency dependency = (SqlDependency) sender;
dependency.OnChange -= this.OnDependencyChange;

// Process the event
if (e.Type == SqlNotificationType.Change)
{
this.m_entitlementModel.ClearEntitlementsCache();
}

// Go back and wait for another event
this.PollForNotifications();
}
}
#endregion



©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Saturday, September 20, 2008

Colin Clark has a Blog

Colin is the former CEO of Kaskad Technology, and is very involved int he Event Processing world. His new blog can be found at http://colinclarkeventprocessing.com


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Friday, September 19, 2008

Wow! What a Week!

It's finally the Friday morning of one of the most amazing weeks of my life. There are so, so many things to write about. I often use this blog as a "diary" for myself, so that I can look back 10 years from now and see the state of the world and my career at that time. And, this has to rank as a life-changing week.

Yesterday may have been the most thrilling ride in the stock market that I have ever seen. The day played out like a football game. I arrived in the morning, and watched the market try to mount a comeback after a nearly 500 point drop the day before. The Dow was up about 150 points, but all of a sudden, the rally started to lose steam. What was happening? Oh no! Several huge money market funds said that they broke the buck. The Dow plunged from 150 to about -100. I have watching Goldman and Morgan trade like penny stocks, as Goldman trades below 90 and Morgan trades below 13.

But wait, the Dow is mounting a huge rally, back into positive territory. What is happening now? It's our brethren in Britain banning short sales. Huge rally under way.

Now, another jump in the Dow. What's going on? It's the Yanks' turn now. CALPERS and a few other huge retirement funds coming out and saying that they won't lend out their shares of financial companies for the shorts. CNBC is saying that it's an all-out war against the shorts. God bless Apple Pie and the USA!

I go into a meeting with the Dow up about 100, and a half hour later, I come out and the Dow is up by 400. It's Hank Paulson and the new Resolution Trust Company! Not to be outdone, the SEC now wants to ban shorting of about 800 financial stocks.

As I write this, the FTSE is up around 8%.

My CEP team sits on the Equity Trading Floor, right below the big board in the first row of the floor. Sitting next to me are the two "brokers of the stars" .... the two guys who are the brokers for the traders themselves. Traders are screaming all around me. Applause breaks out spontaneously.

I may end up penniless, but at least, you cannot ever say that it has been boring!


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Thursday, September 18, 2008

Morgan Stanley and Citi/Wachovia ???

As I drove home from work yesterday, I listened to the reports on Bloomberg Radio about a possible new company called MorganStanleyWachovia or MorganStanleyCiti.

Most people think about the financial ramifications of such a marriage. I think of the ramifications for the IT departments, especially focusing on trading technology.

I think that both of the combinations would be extremely difficult to integrate as far as IT goes. The IT culture of Morgan Stanley is so much different that any other place (with maybe the exception of Goldman). Morgan is very much of a build-it-yourself culture. They have their own messaging system (CPS) and their own ticker plant (Filter). The mad Russian scientists who populate the various IT departments pride themselves on the code that they right. It is much much different than the IT culture that you find in large banks like Citi, Wachovia, Well Fargo, etc.

It is public information that a lot of Morgan Stanley talent has recently migrated to Citi. Vikram Pandit is ex-Morgan, and you see many more ex-Morganites starting to populate the executive ranks. So, the "pump is primed" at Citi for a Morgan Stanley merger, at least at the executive levels. But the IT cultures are so radically different, both in terms of culture and technology, that I think that it will take a very long time to integrate.

Wachovia always had the relatively laid-back Charlotte way of doing things. Lots of legacy technology swimming around their halls. A few years ago, Wachovia established a base in New York, and was able to lure a lot of good Goldman people away. But, there is still that back-and-forth between New York and Charlotte, and most of the Wachovia people that I know in New York have to fly to Charlotte on a regular basis to get their marching directions. This is not the Morgan way of doing things.

BankOfAmericaMerrill is going to be another fun ride on the IT-integration-ferris wheel. Merrill has some really good technology. Some is very new and some is really old (the CICS-based systems that were written 20 years ago are still fairly important).

This is a time when Integration Architecture might be the hottest skill set on Wall Street. I expect boom times for companies like Accenture, IBM, Capco, and the other large consulting firms that specialize in technology integration.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Wednesday, September 17, 2008

We are Hiring

I am going to indulge in what some of you might think is boorish and vulture-like behavior. My heart bleeds for the people at Lehman, Bear, and Merrill who have been displaced, either recently or in the near future. However, people have to live and they need to support their families. So, here I go ....

My company has openings in most of the departments within Equities .... market making, trading systems, risk, etc. We are interested in all skill sets, most notably Java and C++. We need great, hard-core developers. These are not management positions.

If you are interested, please send me a resume. I do not profit personally from this. I am just interested in seeing us with the best talent out there, and catching up to our remaining competitors.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Review of the Gartner 2008 Conference on Event Processing

I spent an interesting two days in scenic Stamford, Connecticut on September 15 and 16, 2008. It was my second venture to a Gartner conference solely devoted to event processing, the first being in Orlando in 2007 when we were CEP neophytes. This time, I was not in learning mode .... the sessions that I attended were designed to give me an insight into what other financial companies are doing with CEP, and what the future direction of CEP might be.

The conference seemed a bit smaller than last year's conference, maybe because this year, it was not preceded directly by the Gartner conference on Business Intelligence. Some of the vendors were lamenting the lack of prospects. Indeed, the conference seemed much more heavily stacked with vendor participants than with potential customers. This speculation was confirmed when I saw a list of the attendees. I would estimate that, out of about 200 attendees, maybe 2o-25% were customers. I was one of 9 attendees from financial services firms, with most of the other attendees coming from fairly small companies. Does this mean that financial companies have already made their decisions concerning CEP, or are the financial companies being more prudent with their spending on conferences and travel? The next year should be a very interesting one for the vendors of CEP products, especially ones that are targeting financial firms.

Mary Knox started off with her usually overview of adopting CEP in financial services. A fairly good overview, with many valid points. I also notice that Mary has been reading certain blogs, as some of this information was included in her presentation. I questioned Mary's numbers on CEP spending, as it showed an extremely rosy outlook for the CEP marketplace, an outlook which may have been valid at last year's conference, but may no longer be valid in these times.

Mark Palmer of Streambase gave a great presentation on Smart Order Routing. I feared that it was going to be an informercial for Streambase, especially since, as I walked into the conference room, a Streambase rep thrust a USB flash drive at me which contained the latest incarnation of the Streambase platform. However, Mark presented a very good presentation without really harping on Streambase, and to tell you the truth, I like the direction where they are heading. It's pretty obvious that Mark is bringing a lot of the direction from Apama to Streambase in terms of developing financial verticals. I also hope that Mark will have a positive effect on the Streambase culture, and that their sales and marketing team will adopt a lower-key approach.

Mark's presentation was followed by Robert Almgren, who used to be with Bank of America before striking out on his own (???). Last year, Robert gave a fascinating intro to Algo trading. This year, he gave some in-depth looks at the architecture of an algo trading system, something that he was probably not allowed to do last year. Streambase is sponsoring some work that he and Bill Harts are doing in Smart Order Routing, and I am sure that the results will make their way back into the Streambase platform. Streambase's direction of totally embracing the financial services industry may or may not pay off in the future; from what a few of the vendors have told me, the interest in CEP in the hedge fund sector has cooled off somewhat.

Louis Morgan from HG Trading pretty much rehashed last year's presentation. HG Trading specializes in High Frequency Trading. Their average holding time for a stock is 7 minutes, and they never hold a position overnight. He mentioned that trading volume have gone up substantially, while the latency of his system has gone from 20ms to under 2ms. HG trading is a three person shop .... Lou, his developer, and a quant. They are extremely agile, and not afraid to spend money where it is needed. For instance, they spend money on co-location for their servers. They have 6 Apama correlators running. It was interesting that Lou gave his talk around the time the market opened on Monday (the morning of the Merrill and Lehman announcements), and he would have been totally forgiven if he has to cancel his presentation and attend to business.

Another good talk with given by Albert Doolittle of George Weiss, a small trading firm in Hartford, Connecticut. I saw many parallels between Albert's experience and my own .... he just jumped into CEP last year, did the trade show circuit, picked Aleri, did a POC, and now he has a CEP system up and running.

I think that my own talk went fairly well, and that I save the attendees some things to ponder.

It was nice to see some of the luminaries of the CEP world, including Opher, and to reconnect with many of the CEP vendors. Ron from Aleri introduced me to the Black Martini (Vodka, Blue Curacao, and Chamborde), and I know that he was moving a few steps slower the following morning.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Goodbye Lehman and Merrill

I could not sleep last Sunday night, the night before the Gartner CEP conference was to start. I was transfixed to CNBC for the entire night. And, I was really depressed ....

Why? Merrill Lynch was disappearing as a firm. One of the most storied financial firms in the world, and a widely recognized brand name.

My father was a broker for Merrill Lynch for 25 years, first starting in a little branch office on Austin Street in Forest Hills, Queens. One of his friends at the office, a guy who used to come over our house and play Pinochle with my dad, was a guy named Dave Kamamsky. Big Dave eventually rose through the ranks at Merrill to become the CEO of Merrill during the go-go years of the 1990's.

My wife worked for Merrill Lynch for about 10 years, starting off as a CICS/Cobol developer and rising to run several of the Equity trading systems there.

Seeing Merrill being swallowed up by Bank of America is like losing an arm. In a year, we have lost three of the major financial institutions in New York. Who knows how long Morgan Stanley will be around ... as I write this, I am watching Charles Gasparino on CNBC saying that John Mack is weighing whether or not to keep Morgan Stanley independent.

These are life-changing times we are in ....





©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Saturday, September 13, 2008

Optimizing Performance in a CEP System

Here are some lessons learned that helped us reduce message backup from our Tibco EMS broker into our CEP Input Server.

1) Make sure that you have fast networking between the Tibco broker and your servers.

We just happened to find out that the hardware folks gave us legacy 100MB connections between our Tibco EMS broker and our CEP Input Server. We asked them to upgrade us to GigE immediately. Unless you have personally installed your hardware, never assume anything in your infrastructure.

2) It might be helpful to turn the "AutoAcknowledge" flag off in your Tibco session.

To do this, change

this.m_connection.CreateSession(false, SessionMode.AutoAcknowledge);

to

this.m_connection.CreateSession(false, SessionMode.NoAcknowledge);

Be careful about using No Acks. What is the impact to your CEP system if you happen to drop a message?

3) Implement threaded queues on the input from Tibco to your input server, and on the output from your input server to the CEP system.

If you need more performance, change the single threaded queue that reads messages from Tibco to a load-balanced multiple queues, each with its own thread. The load balancer can partition by Tibco topic, by ticker, or by OrderId.

Of course, you can always use the built-in adapters from your CEP vendor. But that may come at an extra monetary cost, so check with your CEP vendor to see if a certain input adapter comes free of charge. Also, the more of the CEP vendor's infrastructure you use, the more it ties you into the CEP vendor.

4) Try to do some pre-filtering of messages in your input server before passing them on to the CEP engine.

Recently, we were able to reduce the CPU usage of Coral8 by about 50% (according to our Coral8 guy) by filtering out FIX messages that we knew that Coral8 was not interested in.

5) Continually optimize your code. Just this morning, I did a code review of the input server, and I was able to suggest a change which reduced one hashtable lookup on each FIX message. I know that there are tons of other places in our code that can do with some optimization. If you need to parse FIX messages into C# objects, then do some investigation and benchmarking of FIX engines.

6) Use the Server Garbage collector


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

The London stock Exchange Crash and .NET/Windows

I have been on the receiving side of some good-natured ribbing inside of my company in the wake of the LSE crash and the suspected involvement of .NET and Windows. Our Complex Event Processing System, one of the most strategic projects in our company, runs totally on Windows 2003/64-bit and .NET 3.5. It is one of the highest-profile usages of .NET in one of the largest financial institutions in the world.

Microsoft has been very public is touting the fact that the LSE is a heavy user of .NET. But, from what I can tell, there hasn't been a peep out of Microsoft in defending their platforms in the wake of the LSE debacle. Speculation has pointed to problems with Cisco, problems with SQL Server 2000, problems with the code written by Accenture consultants, and problems with Sarah Palin.

I have been vocal on my blog in the past about the viability of Windows and .NET as a platform for real-time trading applications. I have never seen Microsoft come out with a definitive roadmap for using its platforms for realtime trading apps. No benchmarks against Realtime Linux. No attempts to through OPRA feeds at a Microsoft Server.

Sure, there is some good stuff going on at Microsoft with their grid efforts, but that effort will be the most beneficial to risk and analytics. Things like Velocity Object Caches and SSDS are a lot of fun. Excel is everywhere. But, the core operating system is Microsoft's bread and butter.

We need Microsoft to defend the LSE's use of Windows and .NET, and we need Microsoft to address viability of using its platform for low-latency, high-bandwidth trading apps.

At the Stac Council meeting in July, the companies who gave presentations about using their platforms for trading apps included IBM, Sun, and HP. Where was Microsoft? Why aren't they involved in the Stac Council?



©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Wednesday, September 10, 2008

Automated Trading and CEP on News Feeds

Something for us all to think about if we ever use automated news in systematic trading or CEP.

Wall Street Journal article here.

“The damage was exacerbated by the growing use on Wall Street of automated programs that trigger stock trades without any human interaction,”

This caused a drop of $1B in the market share of United Airlines.

I wonder if the sentiment engines (like Reuters Sentiment, SemLab, Corpora) would have caught this?



©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Saturday, September 06, 2008

CEP and Shoplifting

Yesterday, I decided to drive the long way for a lunch with an ex-colleague of mine from Morgan Stanley. The local NPR public radio station (WNYC) has replaced the heavy metal station (WSOU) as my primary station in my car (sigh ... the joys of getting older ...), and I caught the last part of the Leonard Lopate show, a very popular news-talk show in New York.

Leonard was interviewing John Colapinto, who had written an article for The New Yorker on loss prevention in stores ... commonly known as shoplifting.

What was fascinating was that, as John was talking about how store detectives monitor customer patterns for shoplifting, it seemed like the perfect thing for Complex Event Processing (I hope that Tim will agree that this is truly Complex).

Now, I am sure that this is not news to the CEP vendors out there. Fraud detection and surveillance is one of the big applications of CEP. But, after each detection pattern Colapinto described, I said to myself "How would we do this in Coral8?".

Some of the patterns Colapinto mentioned included:

1) Customers examining clothing without looking at the price tag.

2) Customers moving randomly from table to table. There seems to be a certain pattern of movement that is common amongst shoplifters.

In the "Shoplifter Alert System" that we would build, there would be multiple levels of complex events (Tim can correct me on the proper terminology to use) :

Level 1 Event
"This person is a shoplifter"

Level 2 Events
"This person is moving too randomly through the store"
"This person does not seem interested in the price"

Level 3 Events
The amount of time a person is spending at each "table" in the store
The amount of time a person handles each garment
A sensor on the price tag to indicate whether the person has looked at the price

Level 4 Events
A person has entered the store
A person has left the store
A person is moving through the store

I would love to hear any anecdotes about how CEP is actually being used in detecting shoplifting, so if you know of anything, please comment.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Monday, September 01, 2008

Two strong .NET/C# Developers Wanted

We have openings for two .NET developers. One is for our options market-making operating in Jersey City. The other is for an FX trading system in New York.

1) No consultants. These are full-time positions.

2) Must have very strong experience in WinForms.

3) Real-time messaging experience needed. Sockets, Tibco (RV or EMS), MSMQ, MQ are all nice to haves.

4) Multi-threading experience is a must.

If you are interested, please send me your resume.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Sunday, August 31, 2008

More on "Towards a Streaming SQL Standard"

The title of the presentation "Towards a Streaming SQL Standard" might be a little misleading, in my opinion. The title of the paper might have been "Oracle does this, Streambase does that, let's make a new language construct that enables both products to do this and that". And this is a great example of cooperation between vendors who researchers probably share a common academic heritage.

I don't pretend to understand why the new SPREAD construct is important. It will probably dawn on me when my team has an actual use case that the SPREAD construct solves. This is the case that I experienced a few months ago with Coral8 when we needed windows that flushed themselves when a certain column changed value (to be fair, Streambase already had this in their language).

A few points:

1) Despite what I think about Streambase's marketing and sales organization, you must admit that Zdonik and Cherniack are first-class researchers, and have contributed a lot to the field of CEP.

2) I get confused about Oracle's CEP offering. Is this paper talking about the CEP product that came with the BEA purchase or the original Oracle CEP product? Does any of this include work that they may have incorporated from the purchase of ESPER?

3) I would love to see Coral8's and Aleri's responses to this paper. Do their versions of Streaming SQL already do what the new SPREAD operator is purporting to do?

4) Will any of this standards work bubble up to the work that the STAC A1 council is doing? The STAC A1 council must be vigilant to ensure that we don't include benchmarks that might show off a certain, vendor-specific feature, unless this new feature solves an important business case. Likewise, if the SPREAD operator is important enough that all vendors rush to implement it, then this should be part of the STAC benchmark suite.

5) If the SPREAD operator is important, I expect that Coral8 will implement it right away.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Saturday, August 30, 2008

4th Annual Event Processing Symposium

The schedule for the 4th Annual Event Processing Symposium has been posted.

Opher was kind enough to invite me to participate on the various panels in order to give the perspective from a financial services end-user. Unfortunately, I had to decline, as I can not really miss an entire week of work at this point (the first two days of the week will be spent at the Gartner Event Processing Summit, where unfortunately, I will not have the pleasure of ogling Tim Bass's beautiful wife).

I am disappointed to see that the customer rep from Financial services is Ian Koenig, formerly of Thomson Financial. There are a few factors that contribute to this disappointment:

1) Thomson is a vendor. It's not really a customer. It supplies products to trading firms like mine.

2) If I remember last year's Gartner Summit, Ian's forte was streaming news, not trading. (I hope that Brian Theodore might be able to clarify this a bit). Streaming news, while possibly useful in automated trader, is not something that is truly representative of the needs of a trading firm.

3) As it states on the programme, Ian is now an independent consultant. This means that, to me, he is not a true employee of the financial services industry. I would feel the same way if someone from Accenture or Sunguard Consulting marketed themselves as being an employee of the financial services industry .... but this is certainly my own feeling ... your mileage may vary.

(As an aside: When my old boss was dismissed from my firm last year, he continued to speak at conferences under the guise of still being a member of my company. I notice that this is a trend amongst people who have been recently dismissed from their financial services firms ... even on LinkedIn, people's profile still indicate that they are a member of a firm that they have been separated from.)

I get a lot of calls, asking me to speak at conferences, be on panels, be quoted for interviews, etc. I am happy to do so under various conditions. First, the appearance has to be approved by the senior communications people at my firm ... something that they have graciously granted so far. Second, I cannot reveal any of our "secret sauce".

I have a feeling that one of the reasons that Opher had to "fall back" on Ian is because most financial services firms are not as permissive as mine. I know most of the people involved in CEP on Wall Street, and I am sure that most of their firms would be dead set against them speaking at a public conference and blogging. We are a fairly secretive group, although in reality, all of us know what the others are currently working on. There are usually only two degrees of separation between any two people on Wall Street. That's why I am a bit puzzled as to why I seem to be the only customer from financial services who is willing to talk openly about CEP, and how excited we are to embrace the technology in our company.

On another note about the EPTS conference, the panel discussion titled "Is event processing a hype or the best invention since sliced bread ? Event processing market from business perspective" is chocked full of vendors. What is the blazes are vendors doing on this panel? Tim Bass ... where are you when we need you !

On a positive slant, there is a presentation by a Venture Capitalist on why he decided to stake some $$$ into a CEP company. That talk looks like it is worth the price of admission.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Brief Thoughts on Standardized Streaming SQL

I haven't blogged for a few weeks because I am been on vacation for two weeks (San Francisco, Vancouver, Whistler, Banff) and in between that, I have been bogged down with all of the paperwork at my job, including doing budget planning for 2009. Let me tell you that, in this current economic environment, budget planning is a very interesting and challenging exercise. (The best strategy for dealing with budget time is to take your favorite managing director on the business side out to The Brandy Library, make sure he gets all liquored-up, and make him sign off on your budget after his 5th Highland Cooler.)

Also, I have been a bit turned off by all of the recent in-fighting that has been occurring on the CEP-related blogs. It seems that one person posts an opinion, then two or three of the well-known pundits start a counter-argument on their own blogs, which leads to a spiral of (sometimes good-natured) venom. Just like the recent Democratic and Republican conventions in the United States, I am hoping that the Gartner CEP Summit in two weeks will be a big love fest, and that the pundits will make peace with each other for a week or two.

I read with great amusement the recent announcement of Oracle and Streambase getting together and attempting to define a new standard for Streaming SQL. Some things that immediately crossed my mind were:

1) Streambase and Oracle are presenting their paper at the VLDB conference. The list of presentations is very impressive. Notice the number of papers that Microsoft is presenting, which leads me to hope that some very interesting stuff will be coming down the pike from MSFT. I wish that I could attend the tutorial on "Detecting Clusters in Moderate-to-High Dimensional Data: Subspace Clustering, Pattern-based Clustering, and Correlation Clustering".

2) Mark Palmer, who railed against Streaming SQL for such a long time in favor of Apama's more procedural language, now has to publically support the effort to standardize Streaming SQL. I wonder how much of Apama's language will appear in the standardized language.

3) There are other efforts at standardization underway. Opher Etzion is involved in one of them. I am not sure if Opher's efforts are aimed at solely defining a meta-language for events, or if what he is working on is in direct competition to the Streambase/oracle effort.

4) How willing will Aleri, Apama, and Coral8 be in adopting this effort? In particular, Aleri has a richer programming environment because of their procedural FlexStream language that gives developers a procedural "out" from the SQL-based language. Apama prides themselves on their Java-like language.

5) What happens if Microsoft ever weighs in with something of their own? You know that Microsoft will tie any effort in this area in with LINQ. Aleri is also moving to a more LINQ-like way of doing things. Of course, one can write a LINQ provider for Streaming SQL, but would anyone be motivated to do so?

(Update: Thanks to a reader who does not wish to be identified... the Streambase/Oracle paper is located here)

----------------------

On another note, good luck to Colin Clark, who has left Streambase as quickly as he joined them. Colin looks like he is striking out on his own as an indie consultant. Colin just had his first child, so this must be an especially interesting time for him. It reminds me a bit of my own story when , in 1988, I quit consulting for Goldman Sachs while my mortgage application was pending in order to strike out on my own. When you get the entrepreneurial fever, nothing can stop you ....




©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Tuesday, August 12, 2008

Career Choices - IB vs CEP Vendor

Which would you rather do? Work for a big Wall Street Investment bank, be guaranteed a good salary and (in good times), a decent bonus that might make you the envy of your neighborhood (unless you live in Short Hills, NJ or Greenwich, Ct), or work for a small, technically-savvy software company where you can be directly responsible for the bottom line?

This choice was recently faced by a colleague (let's call him T) at the big IB that I work for.

T is one of the top performance architects on Wall Street, and has personally been instrumental at improving the performance of several of our key systems. For various reasons, T felt that he wanted to explore some other opportunities, and within a few weeks, he had a few job and consulting offers. The fact that he could be so successful in his job search in this kind of market speaks volumes about his talent.

The position that T was going to accept was as a W-2 consultant with another large investment bank whose troubles have been in the news lately. T had never consulted before, so he had asked me a lot of questions about what it was like to be a consultant. Between the fact that T was new to consulting, only had a one-year contract, and was involved with an Investment Bank whose management was said to be a bit befuldled, I preferred to see T end up in another place. If this Investment Bank were to lay off additional consulting staff in the future, T would probably be one of the first ones to go. The Investment bank would have probably given T a small chunk of money to buy off the rest of the contract, and then T would have found himself back out on the street.

Coincidentally, a week before T was to resign from my firm, the CEO of one of the Complex Event Processing vendors contacted me to ask me if I knew anyone who would be available for a new position that his company had opened. Immediately, I thought of T. He was on his way out the door anyway, so I felt OK about referring him to the CEP vendor. Within two days, T had a third offer, and after another day, T inked the deal with the CEP vendor!

I spent quite a bit of time with T to help him through his array of choices. Almost every decision point favored joining the CEP vendor. The CEP vendor is certainly not a start-up, as they have been around for a few years and have about 60 people working for them, but it certainly has the feel of a start-up (sans the foozball table and loft in Silicon Alley).

The things that favored the IB were:

- The ability to interact with a large number of people and make a lot of new connections immediately. In consulting, your network is everything.
- The ability to work on a wide variety of trading systems, and to improve his domain knowledge.
- A great hourly rate

The negatives about consulting for an IB were:

- This particular IB has been particularly caught up in the credit crisis, and has recently dismissed a good number of employees, as well as a lot of contractors
- Being subjected to IB politics and processes
- The costs associated with being a consultant, which include paying 14% for Social Security (even though he was a W-2 of the consulting firm, they required him to pay the entire SS tax!)

The things that favored the CEP vendor were:

- Work in a start-up-type atmosphere where there should be very little politics and processes that get in the way of your productivity
- Work in a company of extremely smart rocket scientists that is very close to T's home
- In a pre-sales role, be able to directly affect the bottom line of the company and drive the future success of the company
- Have an opportunity to travel (well, some might look on that as a negative)
- Be able to meet a lot of different technologists from a lot of different kinds of companies. Since CEP appeals to hedge funds, there is an opportunity to gain some domain knowledge into hedge fund operations.
- If T is able to secure any kind of equity position in the company, then there is an opportunity to cash-in if the company gets purchased.
- Have direct interaction with the senior management of the company.
- Been involved in a technology that is visible in the Garter Hype Cycle
- The opportunity to be a jack-of-all-trades ... sales, technology, performance analysis, consulting

The things that were negatives about joining the CEP vendor were:

- Sales of infrastructure products are very difficult right now
- Deal with the very long delays in the procurement process that are endemic to every Investment Bank
- The travel schedule of a sales engineer might be very onerous, especially if you have a family
- Doing booth duty at trade shows

Did T choose wisely? I would be interested to hear your thoughts.


©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.

Friday, August 01, 2008

Stac Council Meeting Recap

On July 30th, 2008, Stac Research had a general meeting of Stac Council members and associated vendors. Bob from Deutsche Bank was the generous host who managed to procure the Deutsche auditorium for the event.

There was a really good turnout given the fact that it was a hot summer's night in prime vacation season. Peter told me that about 175 people said that they would attend, and I would estimate the final figure at around 100 people.

The event was divided into 3 parts.

Stac had invited 10 vendors to give (exactly) 5 minute pitches on their products. The vendors that presented included IBM, HP, Sun, Solace, Tervela, Violin, Azul, Exegy, ServerEngines, and Bay Micro. All presented their solution for HPC on Wall Street. (Not a single mention of .NET that night .... where were you, Microsoft, and why aren't you on the Stac Council?)

There were two short presentations on the current state of the Stac M1 (Market Data) and E1 (Event Processing) working groups, given by Rob Wallos of Citi and yours truly.

Following the presentations was a cocktail hour, where there was actually a DeutscheBank labeled red wine! Everyone saw a lot of old Wall Street faces, ex-bosses, former colleagues, competitors, etc, and it was nice to reminisce with some of the folks who I haven't seen for years.

Several people from the large vendors approached me with questions about how they could join the Stac A1 working group. What it seems to me is that CEP still needs a lot of publicity, as people are not exactly sure about how to approach it. Only Ralph Frankel from Solace acknowledged the existence of CEP in his presentation, and offered a solution about how Solace can accelerate CEP-based apps. Solace is certainly a company that is on my radar, as it has been mentioned to me by several colleagues.

It's my opinion that, if a company really has a compelling HPC solution for Wall Street, membership in Stac is mandatory. Eventually, non-members will be conspicuous by their absence.

©2008 Marc Adler - All Rights Reserved.
All opinions here are personal, and have no relation to my employer.