Worldant's reactive layer is database-backed.
PgPaw/Postgres write
-> authorized subscription changes
-> UI, agent, workflow, or service receives update
Reactive functions are declared in reactive/ and
compiled into typed subscriptions in the generated package.
reactive/
chess.board.ts
chess.aiContext.ts
Live queries
Live queries read canonical tables and emit the latest authorized value.
They do not need a durable cursor. Reconnect means running the query again and subscribing to future invalidations.
Use live queries for:
- board state,
- todo lists,
- chat message lists,
- dashboards,
- AI context projections.
Event streams
Event streams read ordered event tables and resume from a cursor.
Use event streams when the consumer must process every item exactly in order, or at least know where it stopped.
SELECT * FROM app_events
WHERE id > $cursor
ORDER BY id
The two modes are separate on purpose. Most UI wants latest value. Durable consumers often want cursor position.
