Skip to content
All library documents

Practical Trade-Offs When Choosing a CEP Engine for Trading

Article Quant Q&A · Author: Joseph Tanenbaum

Summary

The document considers operational drawbacks of Esper and its .NET port NEsper for complex and event stream processing in trading applications. It asks about implementation problems and how these engines compare with alternatives, including databases and custom systems. The responses recommend Microsoft's StreamInsight based on users' reported experience, citing native LINQ support in Visual Studio, documentation, examples, training material, compiled query execution, and memory management aimed at low latency.

The supporting evidence is anecdotal: respondents say they moved from Esper to StreamInsight and found it easier to work with, with fewer unexpected problems and a more polished implementation. The document does not provide benchmarks, controlled comparisons, or a systematic account of NEsper failure modes. Its specific product assessment is also tied to the respondents' tooling and experience, so it should not be treated as a general performance ranking. It is useful as a list of evaluation criteria for trading event-processing systems, but readers would need current product information and workload-specific testing before choosing an engine.

Key ideas

  • The discussion compares Esper and NEsper with other complex event processing options for trading systems.
  • One respondent favors StreamInsight for its LINQ integration, documentation, examples, and training resources.
  • The response also attributes speed advantages to compiled queries and built-in memory management.
  • A second user reports an easier transition and fewer problems after replacing Esper.
  • These judgments are anecdotal and lack controlled benchmarks or a detailed catalog of failure modes.

Tags

Full text
# Drawbacks & Caveats of using (N)Esper for ESP/CEP in trading systems?


# Drawbacks & Caveats of using (N)Esper for ESP/CEP in trading systems?












Esper and its .NET port NEsper are components that enable Complex Event Processing (CEP) and Event Stream Processing (ESP) engines. They are especially suitable for trading applications. They can, among other things, make it easier to deal with data-bursts and threading and they use a query language tailored for event processing.

I'm am interested in:

- drawbacks of (N)Esper in a trading environment, when compared to alternatives (eg. competing ESP/CEP, Database or custom)

- the type of problems one may encounter when building a trading application around (N)Esper.

## Answer by Contango (score 7, accepted)

https://quant.stackexchange.com/a/1219

See Marco's list of CEP vendors.

I'm currently using StreamInsight, Microsoft's new CEP engine.

I'd rate it as slightly better than NEsper, for the following reasons:

- Supports LINQ natively within Visual Studio.

- Better documentation (in my opinion).

- Good samples.

- Complete training course (see the StreamInsight blog).

- The LINQ is compiled into IL code for speed.

- The engine behind StreamInsight was developed by the same people on the SQL server team, they have applied a lot of the SQL algebra optimizations to make StreamInsight faster.

- Faster - it has its own built in memory management to meet minimum latency requirements.

See:





## Answer by Kim (score 2)

https://quant.stackexchange.com/a/3366

My vote is on StreamInsight too. We have used Esper but have dropped it in favor of StreamInsight as we find is much easier to work with. Less strange problems as we always had with Esper. StreamInsight seems to go the last mile with the implementation, everything just feels much more polished.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.