How I Built a Real-Time Precious Metals Price Feed for 30,000 Concurrent Users in Laravel
Architecture walkthrough: Laravel Reverb, WebSocket broadcasting, Redis pub/sub, and the tricks that make it hold under real load.
The Problem
A live precious metals trading platform needs to push gold and silver price updates to every connected user the moment a tick arrives — not every 5 seconds via polling, not via a REST endpoint they hammer on a timer. Real-time. Sub-second latency. And it needs to handle 30,000 simultaneous connections without melting.
This post walks through exactly how I built this using Laravel 11, Laravel Reverb, Redis, and a few architectural decisions that made the difference between a demo and something production-ready.
Stack
Laravel 11 + PHP 8.2
Laravel Reverb — self-hosted WebSocket server (replaces Pusher)
Laravel Echo — frontend WebSocket client
Redis — pub/sub backbone + cache
Laravel Horizon — queue worker monitoring
MySQL 8 — OHLCV candle storage with covering indexes
Full source:
Includes: models, events, jobs, services, Filament 3 admin panel, Docker Compose, migrations, and a price simulator.
Tags: #laravel #php #websocket #redis #architecture
SOCIAL SHARE CARD GENERATOR