Skip to content

presence

Who else is on this record right now: a browser sends a heartbeat every 15 seconds for one row of an allow-listed entity and gets the other viewers and editors back, with a live signal to them on a change. State is ephemeral (Redis hash per tenant, entity and row, in-memory without Redis), keyed by the session tenant, expires after ttlSeconds without a heartbeat and holds user ids only; display names are looked up per response. A caller sees presence only for rows visible to them. Mount with createPresenceFeature({ entities: [“task”] }).

The write commands this feature provides (Provides).

flowchart TB
  n_presence["presence"]
  subgraph how_provides["Provides"]
    n_cmd_presence_write_heartbeat(["heartbeat"])
    n_cmd_presence_write_leave(["leave"])
  end
  n_presence --> n_cmd_presence_write_heartbeat
  n_presence --> n_cmd_presence_write_leave

Provides — write commands this feature registers (dispatch them through the command bus):

  • Requires: none
  • Activation: always on (not toggleable)