Window Analytics

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.

Tumbling windows are a non-overlapping events arrays ordered by time. In a tumbling window, events are grouped in to a single window based on time or count. An event belongs to only one window. Events within a window are only processed once when a new window is presented for processing.


processing unit:
    - time window:
        emitting type: tumblingQuoteAnalytics
        aggregate functions:
          FIRST: [ask]
          LAST: [ ask ]
          MIN: [ ask ]
          MAX: [ bid ]
          SUM: [ volume ]
          MEAN: [ volatility ]
          VARIANCE: [ volatility ]
          STDEV: [ volatility ]
          type: tumblingTime
          window size: 5000

Core Attributes

AttributeDescriptionData TypeRequired

emitting type

name of the event



Window preprocessor

window listeners

Custom window listeners which are executed on window generation. See window listener documentation below

See documentation below.

aggregate functions

Standard set of aggragation functions based over a window using group by semantics

See documentation below.


Type of window processing. Supported types:

  • Tumbling

    • tumblingTime

    • tumblingCount

  • Sliding

    • slidingTime

    • slidingCount


e.g. slidingCount

Last updated