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.
Delivery model
Section titled “Delivery model”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.
Verify workers and realtime services
Section titled “Verify workers and realtime services”docker compose ps reverb horizondocker compose exec server php artisan horizon:statusReconnect test
Section titled “Reconnect test”- Open the same authorized conversation in two authenticated browser sessions.
- Send a message and add a reaction in the first session.
- Confirm the second session updates without a reload.
- Restart Reverb only.
docker compose restart reverbdocker compose ps reverb horizon- 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.
Operational boundary
Section titled “Operational boundary”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.