Processors
Processors are the core of the Joule platform, each performing a specific task. They create use case when linked together
Last updated
Processors are the core of the Joule platform, each performing a specific task. They create use case when linked together
Last updated
The Joule platform uses processors which are chained to form pipelines.
It consists of one or more linked processors, each performing a specific task based on functional programming principles.
Events are processed in sequence, with the final event either sent to a specific processor or directly to the connected systems. Enabling business use cases, while providing metrics for observability via JMX monitoring.
Joule offers several core processors that developers can use to build different use cases.
These processors are categorised by function, based on their role within the platform.
Filters
Reduce stream processing overhead by filtering irrelevant events
Enrichment
Enrich events using linked reference data, metrics and analytics
Transformation
Transform event attribute values based upon a desired target state
Triggers
Apply rule based triggers for downstream business actions
Each OOTB processor record and presents event metrics to JMX monitoring platforms. This provides direct insight into how a streaming use case is performing.
Metrics available
Received
Processed
Failed
Discarded
Ignored
Average processing latency
All of these metrics are enabled by default and presented as JMX beans on the standard monitoring ports.
Apply these settings to the joule execution path
For further information use the instructions in Monitoring and Management Using JMX Technology
Every processor that inherits from the base class AbstractProcessor
, using the Joule SDK, will gain these core features.
Attribute | Description | Data Type | Required |
---|---|---|---|
name | Uniquie name of processor. | String Default: Random UUID | |
enabled | Toogle to enable processor processing | Boolean Default: true | |
properties | Processor specific properties | Map | |
clone event | Toogle to clone event for processing. Note this will cause significant memory overhead for high load use cases | Boolean Default: false | |
stores | External data stores can be attached, useful for analytics, enrichment, filtering and transformation use cases | ||
latency trigger | Number of events processed to trigger the average processing calculation. A value less than 1 switches off the calculation. | Integer Default: 1000 |