Journey: Realtime
Stage 3h of the guided journey. Enable WebSocket subscriptions per the plan.
When to use
- Dispatched by
journeywhencurrent_stage: realtime. - Directly via
/butterbase-skills:journey-realtime. - Skipped (annotated
(n/a)) if the plan has no Realtime section.
Preflight
If docs/butterbase/03-preflight.md is missing, older than 24 hours, or 00-state.md has app_id: null, invoke butterbase-skills:journey-preflight first. Wait for it to return successfully before proceeding.
Inputs
docs/butterbase/02-plan.md— the Realtime section.docs/butterbase/00-state.md— forapp_id.
Procedure
Refresh docs. Call
butterbase_docswithtopic: "realtime". For WebSocket subscription shape and RLS interaction, also WebFetchhttps://docs.butterbase.ai/realtime. Skip if cache is fresh.Read the Realtime section. Print it back:
"About to enable realtime on: <tables>. Proceed?". Wait foryes.Invoke
butterbase-skills:realtimevia the Skill tool with the realtime plan andapp_id. The wrapped skill callsmanage_realtime action: configureper table and reminds the user that RLS still applies to subscribed rows.Verify with
manage_realtime action: get.Append one line to
docs/butterbase/04-build-log.md:<ISO timestamp> realtime manage_realtime okTick
- [x] realtimein00-state.md, setcurrent_stage:to the next unchecked stage.Return to
journeyorchestrator (or ask"Continue to the next stage? (yes/no)").
Outputs
- Realtime configured tables.
- One line in
04-build-log.md.
Anti-patterns
- ❌ Enabling realtime on a table whose RLS hasn't been configured — clients will connect but see no events.