● THE PROBLEM
What we walked into.
The legacy system was a Frankenstein PHP monolith with one schema per customer, manual onboarding and a 14-second average map load. Two of the top five customers were threatening to churn over reliability.
GOALS WE COMMITTED TO
- Single multi-tenant database with tenant isolation enforced in the data layer
- Real-time vehicle telemetry streaming over WebSocket with backpressure
- Per-tenant admin tooling and SSO without forking the codebase
- Onboarding time from 11 days to under 1 hour
● THE SOLUTION
What we shipped.
- 01Laravel (Octane) API with row-level security on PostgreSQL for tenant isolation; Vue 3 SPA on the front.
- 02Telemetry ingest path: Go service consuming MQTT, sharding by tenant onto Redis Streams, fanned out to WebSocket subscribers.
- 03Background pipeline computing route history, geofence events and reports — RabbitMQ workers writing to a separate analytics database.
- 04End-to-end audit log of every administrative action, queryable per tenant.
Microservices
The services we shipped.
api-svcLaravel
REST + GraphQL, RBAC
telemetry-svcGo
MQTT ingest, Redis fan-out
ws-svcNode
WebSocket subscribers
report-svcPython
analytics ETL

