Weather,
windowed.
A live weather pipeline that subscribes to a REST API, paginates the response history, aggregates over a rolling window, and pushes the result to a downstream consumer in lock-step. The same orchestration pattern any time-series feed needs.
Rolling windows
are everywhere — once you look.
Most live time-series workloads boil down to the same pattern: subscribe to a feed, accept that history arrives paginated, hold a rolling window of recent values, emit aggregates as the window advances, deal cleanly with late or duplicate data.
This pipeline does that against a live weather API. The same shape generalises to financial market data, telemetry from a substation, IoT sensors, log streams, anything that arrives over time with a freshness budget.
The trick that makes it deterministic is Protor's orchestration plane: a PropertyControlNode drives the pagination state and a ExecutionControlNode coordinates the windowed sweep — so the same input always produces the same output, even when the API itself is rate-limited or flaky.
Seven nodes,
one .viow file.
From E2E Tests/Orch_Tests/W02-RollingWeatherWindow/w02-rolling-weather-window.viow.
The PropertyControlNode + ExecutionControlNode pair is Protor's signature orchestration mechanism — every time-series-with-state workload follows this exact shape.
Same pattern,
everywhere it matters.
The Orch_Tests folder ships dozens of variants. A few of the closest neighbours:
| Workflow | What it adds |
|---|---|
W01-PaginatedApiCrawler | Crawl an entire paginated API surface, not just a window. |
W03-AdaptivePollingRate | Slow down or speed up polling based on observed change rate. |
W14-WatermarkTracking | Late-data handling with explicit watermark advancement. |
W21-AnomalyDetection | Detect anomalies inside the rolling window in real time. |
W35-SlidingWindowAggregation | Sliding instead of tumbling windows. |
Why this matters.
- Determinism over flaky inputs. The orchestration nodes hold state outside the data path — replay is byte-identical even when the upstream API misbehaves.
- Same shape, different domain. Markets, grids, sensors, weather — the rolling-window pattern is one node graph.
- Auditable as written. The
.viowis the spec. Diff two runs to see exactly what changed.