Logical operator order
- 01Read and timestamp
Decode the JSON object and resolve its event time.
- 02Filter source events
Apply the pre-aggregation `WHERE` predicate.
- 03Partition temporal state
Use group, session, pattern, or model keys.
- 04Evaluate stateful logic
Aggregate, compute window statistics, recognize patterns, or update a model.
- 05Apply post-state conditions
Evaluate `HAVING` or a post-`COMPUTE` filter.
- 06Project and emit
Build the result object and route it to the named output.
When results become visible
| Query shape | Emission behavior |
|---|---|
| Projection / filter | Emits as each accepted event is processed. |
| Finite unwindowed aggregate | Flushes final aggregate rows when the input completes. |
| Aggregate window | Emits when the event-time window closes; output time is the window end. |
| Session window | Emits at timeout or maximum-duration split, and flushes remaining sessions on finite completion. |
| Window compute | Preserves per-event multiplicity and original event timestamps while adding window values. |
| MATCH_RECOGNIZE | Emits one measured row after a successful complete pattern. |
| Temporal ML | Updates model state and emits computed values as records become eligible. |
Partitioning is semantic isolation
A partition key is more than a display group. It prevents state from unrelated entities from mixing. Driver A does not share a session, pattern candidate, rolling statistic, or model state with Driver B when driver is the partition key.
Finite and continuous execution
Input completes
Final aggregate and session state can be flushed deterministically at end of input.
Input remains open
The runtime keeps state and emits only when temporal conditions make a result complete.