Stream Direction vs Task Intent
Why the doc splits on data direction, not task feel
§4 and §5 split tasks by where the data comes from:
Event-driven (§4)
Events arrive in our system from outside (push).
Schedule-driven (§5)
Our system runs scheduled queries against its own data (pull).
A separate, independent dimension is what the resulting task feels like to the operator:
Reactive
Something has already happened; we're responding.
Proactive
We're getting ahead of something before it happens.
These two dimensions are orthogonal — all four combinations exist.
| Example | Where the data comes from | What the task feels like |
|---|---|---|
| Client message arrives → "respond to client" | Event-driven (push) | Reactive |
| Flight feed pushes delay alert → "warn client before they leave for the airport" | Event-driven (push) | Proactive |
| Daily query finds birthday in 7 days → "TA prepares gift" | Schedule-driven (pull) | Proactive |
| 15-min query detects SLA timer at 30 min to breach → "respond to client NOW" | Schedule-driven (pull) | Reactive |
The doc uses event-driven / schedule-driven in §4 and §5 because that's the dimension the architecture actually splits on (push vs pull). The task-intent dimension (reactive / proactive) varies independently per task and isn't a section-level grouping.
Reactive / proactive can become operational later — drives SLA defaults, default priority, dashboard sort orders. Those calls land in the PRD, not this outline.
(For engineers: event-driven = WRITE / push side; schedule-driven = READ / pull side.)