Skip to main content
Version: Next

Compose


Description

The Compose processor merges two event streams by combining their properties. It supports:

  • Real-time event stream merging
  • Last-event state tracking
  • Custom output field selection
  • Dynamic event composition
  • Stateful event processing

This processor is essential for:

  • Combining data from multiple sources
  • Creating unified event views
  • Merging related event streams
  • Building composite event structures

Required Input

The processor requires two input streams:

  • First stream: Any event stream with at least one property
  • Second stream: Any event stream with at least one property

Configuration

Output Selection

During pipeline modeling, you can select which fields from each stream should be included in the output event. The processor will:

  • Keep the last event from each stream in memory
  • Merge selected fields when new events arrive
  • Forward the combined event with selected fields

Output

The processor creates a new event containing the selected fields from both input streams. The output is generated whenever:

  • A new event arrives from either stream
  • The last event from the other stream is available

Example

Input Event Stream 1

{
"deviceId": "sensor01",
"temperature": 25.5,
"timestamp": 1586380104915
}

Input Event Stream 2

{
"location": "room1",
"humidity": 45.2,
"timestamp": 1586380104915
}

Configuration

  • Output Fields: deviceId, temperature, location, humidity

Output Event

{
"deviceId": "sensor01",
"temperature": 25.5,
"location": "room1",
"humidity": 45.2
}

Use Cases

  1. Data Integration

    • Combine sensor readings
    • Merge related metrics
    • Create unified views
    • Join event streams
  2. Event Enrichment

    • Add context to events
    • Combine related data
    • Create composite events
    • Build rich event structures

Notes

  • Events are merged in real-time
  • Last event state is maintained
  • Output fields are configurable
  • Original event structure is preserved
  • Events are forwarded on any new input
  • State is cleared on pipeline stop