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
What is Esper?
Esper is an event stream processing (ESP) and event correlation engine (CEP) written entirely in Java and that is fully embeddable in your existing platforms. It is also the only open source Event Stream Processing engine for Event-Driven Architectures. Read more in the product section
What is Esper Enterprise Edition?
Esper Enterprise Edition is a complete turnkey solution for addressing Event Processing and CEP requirements in enterprise grade deployments. It combines Esper in the same version as the community version, clustering technologies, a rich multi-window web-based GUI, Eventlet continuously-updating displays, EsperJMX and EsperJDBC in one single certified and supported package. "Eventlets" is our term for composable, interactive and real-time graphical or textual views of managed event streams that may originate from multiple and distributed CEP engines. EsperJMX enables remote runtime management through third party tools. EsperJDBC provides maximized interoperability over a standard JDBC client API for point and click use of Esper with dashboards and business intelligence tools. Read more in the product section
What is EsperHA?
EsperHA is high-availability and resiliency enabled event stream processing (ESP) and event correlation engine (CEP) written entirely in Java and that is fully embeddable in your existing platforms. It includes Esper and can HA-enable any existing Esper application at no code change and ensures you can process more than what your memory can hold, yet faster than what your storage can do. Read more in the product section
What is Event Stream Processing (ESP)?
Event Stream Processing consists in sensing infinite event sets of arbitrary complexity and reacting to situations occurring in the stream. Most often the stream will be considered over a sliding window such as "during the last 30 seconds" or "for the last 5 events". A basic use case is to compute the average of a stock tick over a sliding window of 30 seconds and react to it (for example trade some of the stock) if the average is on an increasing trend. With ticks flowing in at very high-speed rate this makes it impossible to store them in a relational database or even a cache to then poll the data store periodically. ESP also introduces the concept of join between streams, or between stream and historical data.
What is Complex Event Processing (CEP)?
Complex Event Processing is somewhat complementary to ESP. CEP is used to detect patterns among events based on relationships between events such as causality, membership, and timing. A simple pattern could detect situations where an event happens before another event, or an event happens after another event but no later than 30 seconds. There are a lot of use cases which fail short if you only consider an ESP solution, and mixing an ESP solution with a classical rule engine may lead you to scalability issues very quickly. Esper uniquely combines ESP and CEP.
Does Esper support both ESP and CEP?
Absolutely. Esper supports both ESP and CEP and enables you to combine both in the very same stream query, which opens for a wide range of possibility.
Why use Esper?
Esper is the only open source Event Stream Processing engine for Event-Driven Architectures. It is available under the GPL GNU Public License v2.0 open source license, benefits from a vibrant Java open source community, and is further backed by commercial support and services provided by EsperTech so there is no risk at trying it for simple things and moving on to critical applications. You won't be the first.
Esper uniquely combines ESP and CEP and is fully embeddable in existing Java platforms which can lead to dramatically simpler and cheaper architectures. Partners of our Embedded Event Stream Intelligence Partner Program also understand the competitive advantage they get by embedding Esper into their product and solutions.
Finally, Esper provides you with a unique guarantee to scale and cluster your application when you will need without extra complexity thanks to EsperHA. Start small, think big.
Can I freely redistribute Esper (ship another product that is using Esper)?
Esper is licensed under the open source GPL GNU Public License v2.0 license. That means if you redistribute an application or product that links with Esper, it must also be made available under open source unless you acquire a dedicated license for redistribution. You can read further about the exact terms in the license. If those terms are not compatible with your application or product, join the EsperTech Embedded Event Stream Intelligence Partner Program and contact us so that we can discuss your requirements further towards a dedicated license that best suits your business.
Can I freely use Esper in my application?
Esper is licensed under the open source GPL GNU Public License v2.0 license. You may check this license depending on your application and how you redistribute it. Restrictions may apply. You should consider Esper Enterprise Edition for any production use. Esper Enterprise Edition is not made available under a viral copyleft license and combines Esper, EsperJMX, EsperJDBC and Esper Studio in one single certified and supported package for maximal productivity, interoperability and manageability.
Can I use Esper in an Application Server?
Esper is fully embeddable in any Application Server powered by a Java 6 or newer JVM such as Apache Tomcat, Jetty, BEA WebLogic Server, IBM WebSphere, RedHat JBoss, Apache Geronimo, Caucho Resin etc.
Can I use Esper in Enterprise Service Bus (or alike) X?
Esper is fully embeddable in any Enterprise Service Bus powered by a Java 6 or newer JVM such as Camel, Mule, ServiceMix, for example.
Why not just JMS, JMS MessageSelector and custom coding?
JMS is a great specification, API and architecture for transporting events from one platform to another. It doesn't deal with event stream at all but simply with "Message", looking at each event one by one. A JMS MessageSelector suffers from the same limitation and allows filtering messages one by one without considering causality, joins, or even sliding window. You'll have to come up with custom development to enable a basic event stream processing capability on top of JMS APIs such as MessageSelector - and it will fall short on scalability.
You can think of JMS as a great enabler to publish events to an Esper server, and you can think of JMS MessageSelector as a 10 years step back when looked from an ESP/CEP perspective.
Why not a simple database and some SQL?
Event streams are infinite sets of data flowing in at real-time speed, and detecting complex situations in real-time is rather incompatible with what a database or data storage technology is designed for: storing data to later query it. Esper can be considered precisely the opposite of the database: you don't push the data to later query the data (possibly with expensive polling or complex triggers). Instead you express what situation you are looking for (event query) and run the data through at real-time speed.
ESP/CEP emerged from research done in the field of "active" database - if the name "active" doesn't tell enough, you should try to implement your use case with a classic database (even an in-memory one) and compare this to an Esper enabled architecture. Download Esper now.
Can I use combine real-time event streams and historical data?
Absolutely. Esper enables you to join streams with classic SQL stores so that you can use enrich output with historical data, or use historical data to further filter stream.
Where do I learn more?
How can I ask other questions about Esper?
How do I report a bug?
If you don't have a support subscription, you can use our issue tracking system, or try to post it to the project mailing lists.
What does Esper stands for?
You may try Wikipedia at http://en.wikipedia.org/wiki/Esper. As you can see ESP can stands for Extra-Sensory Perception so it is likely to help Event Stream Intelligence.