Midwess

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.