# Realtime Guide

Phase 6 introduces vendor-neutral realtime events.

Events:
- `wallet.balance.updated`
- `notification.created`

Private channel:
- `user.{user_id}`

Recommended Laravel-compatible options:
- Laravel Reverb
- Ably
- Pusher

The core does not hard-code one vendor. This makes it possible to switch providers later.

Fallback:
Clients can poll `/api/realtime-snapshot` to get the current wallet balance,
unread bell count, and latest notifications without relying on websockets.

For WebToNative:
- listen to these frontend events in the web app
- bridge push notifications separately for background/device notifications
