Analytics form the core of the platform to drive insight to value. Joule provides various methods to define and leverage analytics within a streaming context
Joule provides a flexible approach to define, generate and apply analytics. Below outlines the key features.

Metrics Engine

Joule provides a SQL compliant metrics engine. The engine computes SQL query based metrics using a runtime policy using the events stored within auto generated event tables.

Custom Analytics

Platform users can deploy custom stateful and stateless analytics using the Joule DSL via the analytics processor as expressions. Additionally developers can extend the analytical capabilities by implementing various analytics APIs.

Event Windows

Joule provides the ability to perform time or number of events window based analytics. A suite of standard window functions are provided out-of-the-box. Developers can create custom analytic functions which are deployable as discrete components on the classpath.


  • Sliding
  • Tumbling

Predicative Analytics

Joule provides a PMML predictor processor to perform streaming predictions / scoring. The implementation leverages the JPMML open source library developed by Villu Ruusmann.


  • JPMML models


Event based geospatial analytics provide the ability to create location aware solutions. Joule provides a small set of processor optimised for real-time geospatial analytics. Users can define geofences of interest and configure triggers to inform them of occupancy.


  • Entity Geo tracker
  • Geofence Occupancy Trigger


HyperLogLog processor provides an implementation is an algorithm for the count-distinct problem, approximating the number of distinct elements in a multiset. Calculating the exact cardinality of the distinct elements of a multiset requires an amount of memory proportional to the cardinality, which is impractical for very large data sets.