Skip to content

Realtime and queues

Available in the local environment

Redis backs Katra queues, cache, and sessions. Horizon runs queue workers. Reverb provides private realtime delivery to Katra Client.

Database writes are authoritative. Realtime events publish only after the database transaction commits. The event is a content-minimal hint that tells an authorized Client which state to refresh.

This design provides predictable recovery when events are duplicated, delayed, delivered out of order, or missed during a disconnect.

Terminal window
docker compose ps reverb horizon
docker compose exec server php artisan horizon:status
  1. Open the same authorized conversation in two authenticated browser sessions.
  2. Send a message and add a reaction in the first session.
  3. Confirm the second session updates without a reload.
  4. Restart Reverb only.
Terminal window
docker compose restart reverb
docker compose ps reverb horizon
  1. Confirm both sessions reconnect without losing or duplicating committed conversation state.

HTTP message creation should remain authoritative during a Reverb outage. Once the connection returns, Clients recover through authenticated reads.

Production queue capacity, retry policy, dead-letter handling, observability, and recovery still require deployment-specific guidance. Local Horizon, Pulse, and Telescope access must not be exposed publicly without an accepted administration policy.