The Query Service enable client applications to get Process & Task data without going straight to the Runtime Bundles. The Query Service was designed to enable efficient querying mechanisms for data generated by one or more Runtime Bundles. In contrast with the Audit Service, the Query Service picks up the event and apply some transformations to store state.
This component was designed to aggregate data from a set of related Runtime Bundles, allowing consumers to filter using the runtime bundle.
The query component provides read only REST endpoints.
The query service listen to events generated by runtime bundles and transform them to store state about the current process instances and tasks executions. This state is stored in a schema that is optimized for querying and based on the specification of this component different implementations using different technologies can be implemented.
Our reference implementation uses JPA entities to store this state and we defined a simple schema to store the state of the following entities:
Here you can find all the Events Listeners that are used to recreate state from the events emitted by the Runtime Bundle.
These event listeners have the responsability of understanding each specific event and apply a transformation to the existing entities or creating new entity instances. The following section explains the current flow for each of the listeners. You can provide your own implementation of the Query Service (in any other language), by following the described behaviour: