Event Stream Intelligence
Runs on any Java 6 or newer JVM
Windows, Linux, Solaris, AIX
32bit and 64bit
Runs on any Java 6 or newer JVM
Requires Flash Player 9 or higher
Supported Containers (*)(*) Esper does not require any container
Oracle WebLogic Server
Any Java AS
Any Java ESB
Supported Databases (*)
Any RDBMS with JDBC driver
(*) only required for historical data joins
(x) when choosing EsperHA database storage option
Esper can run on any Java 6 or newer JVM such as Oracle JVM, BEA JRockit or IBM. As a consequence, Esper can be embedded in any standalone application, Application Server or Enterprise Service Bus that runs on top of Java 6 or newer. Check sample of supported platforms on the right of this page.
Efficient Event Processing
Esper features an expressive Event Processing Language:
- Continuous queries, filtering and computations (min, max, avg, stddev, vwap, ...)
- Continuous joins
- Followed-by logic, repeat patterns and detection of missing events
- ESP and CEP federated processing
- Time and length based sliding window
- Output flow control
- Continuous joins of streams and historical data stored in relational databases, with local caching
- High performance, low latency
Simple Programming Model
The Esper container triggers actions which are Plain Old Java Objects (POJO). This enables a very easy integration of Esper with existing components, such as Spring, EJB, MDB, and WebServices and basically any Java developer can benefit of Esper full power without complex API to learn.
High-availability and resiliency
EsperHA can HA-enable Esper application at no code change. It enables you to mix transient and fully resilient event processing strategies in one single system.
Optimized for high write performance and recovery to memory, your application achieves highest throughput with minimal latency.
Simple operational requirements ensure quick deployment, cost effective datacenter architecture and maintenance.
Esper provides numerous capabilities for integration into existing systems and extension for unique competitive advantage:
- Java, .Net, Map or XML events
- Runtime statement management
- API or configuration driven
- Plug-in SDK for functions, aggregations, views and pattern detection extensions
- Agile development and testing, integrates with Eclipse and JUnit
- Adapters: Adapters to any possible transport exist through integration with Apache Camel, ServiceMix and Mule ESB. EsperIO and Enterprise Edition provide additional adapters.
Esper leverages advanced multi-threading and concurrency primitives and fully supports 32bit and 64bit architectures.
We are conducting benchmarks for each release as part of the release process. Recent benchmarks information summarizes as follows:
Esper exceeds over 500 000 event/s on a dual CPU 2GHz Intel based hardware, with engine latency below 3 microseconds average (below 10us with more than 99% predictability) on a VWAP (volume weighted average) benchmark with 1000 statements registered in the system - this tops at 70 Mbit/s at 85% CPU usage. Esper also demonstrates linear scalability from 100 000 to 500 000 event/s on this hardware, with consistent results across different statements.To date, EsperTech is the only ESP/CEP software vendor to publicly disclose benchmark results with complete hardware details, scenario and replay kit.
ESP/CEP applications are complex to benchmark, because the performance figures are highly dependant on the complexity of the situations to detect among the event stream(s) possibly joined together or involved in a causality relationship. There is no industry benchmark available yet that would allow for apple-to-apple comparison.
There are a number of ways to optimize for throughput and/or latency. If performance is a key requirement for you, let us know and we will show you how Esper scales.
Events can be published as XML documents, JavaBeans (POJO with getter and setter), name value pairs, or any kind of Java class thanks to a fully configurable mapping.
Joins to historical data
Event Streams can further be joined with historical data contained in standard relational database using JDBC technology with any JDBC driver either standalone or provided by underlying infrastructure.
Operation & Management
Esper provides a simple API to hot deploy new stream queries, suspend or stop them. It also provides reporting on key counters using the JMX API allowing for remote management. EsperJMX exposes all key components as managed objects for standardized based manageability. Esper Studio streamlines operation with an advanced and feature rich management console.
Standards and Interoperability
EsperJDBC can turn Esper into a JDBC server endpoint that you can query using EsperJDBC JDBC 3 compliant driver. It provides immediate interoperability with any JDBC compliant reporting, charting, and query tools and enables on demand query on continuous results and streams handled by the underlying Esper engine either local or remote.
EsperJMX opens up Esper to any JMX compliant management tool or script.