Juggler's main differentiating feature as compared to other real-time stream processing systems such as Apache Spark Streaming and Apache Flink is that Juggler enables the creation of off-the-shelf generic processing modules that can be used by analysts and not just developers. The ultimate goal of this project is to build a fully declarative real-time stream processing environment in which programming is the exception rather than the rule. Using pre-created modules with flexible functionality, a Juggler user can create a processing sequence of arbitrary complexity, watch it in action and manage it via UI or REST.
Juggler's architecture is designed so that exactly-once processing is performed not only within a single processing block but throughout the entire sequence, starting from the moment stream events are fed the system and up to the moment when the output data is stored to conventional data storage.
The approach based on loosely coupled blocks with exactly-once processing support throughout the entire sequence allows for decomposing data processing in order to provide better modularity, performance management and simplicity in development.
Juggler supports four models of feeding events for processing:
Juggler easily integrates with in-memory grid systems, for example, Hazelcast, Apache Ignite.
The systems is available under Apache License v2. All documentation on the system is available on the product web site.