A telemetry pipeline receives a continuous stream of sensor events. Each event window needs ingestion, deduplication (sensors sometimes double-fire), aggregation into window-level statistics, and emission of the aggregated result to a downstream consumer. If the aggregation step is slow, backpressure must prevent the ingestion buffer from overflowing.
[st_ingest_stream]
|
v
[st_window_events]
|
v
[st_aggregate_windows]
|
v
[st_detect_anomalies]
|
v
[st_emit_results]
Workflow inputs: events, windowSizeMs
AggregateWindowsWorker (task: st_aggregate_windows)
- Rounds with
math.round() - Reads
windows. Writesaggregates
DetectAnomaliesWorker (task: st_detect_anomalies)
- Rounds with
math.round(), usesmath.abs() - Reads
aggregates. Writesanomalies,anomalyCount,globalAvg
EmitResultsWorker (task: st_emit_results)
- Reads
aggregates,anomalies. Writessummary
IngestStreamWorker (task: st_ingest_stream)
- Reads
events. Writesevents,eventCount
WindowEventsWorker (task: st_window_events)
- Reads
events,windowSizeMs. Writeswindows,windowCount
40 tests | Workflow: stream_processing | Timeout: 60s
See RUNNING.md for setup and usage.