← Portfolio SaaS

Multi-Tenant Fleet Ops SaaS (Laravel, React)

Event-driven Laravel pipelines cut dispatcher status lag from minutes to under 3 seconds at peak concurrency.

<3s

Status lag at peak (down from minutes)

Context

A multi-tenant fleet ops product had to feel live for every customer at once — without leaking one tenant’s map into another.

The problem

Dispatchers could not trust vehicle status during peak hours. Spreadsheet sync lagged by minutes, so two tenants could assign the same asset and the map lied.

Architecture

Tenant-scoped Laravel events, Redis-backed queues, and a React ops console on a clean domain boundary. Status writes go through an event pipeline; the UI subscribes to tenant channels, not a shared spreadsheet export.

Outcome

Status lag fell from minutes to under 3 seconds at peak concurrency. Dispatchers stopped double-booking assets.

Handover

Tenant isolation notes, channel map, and production credentials handed over with the codebase.

What we shipped

  • Tenant ID on every event, queue, and cache key — no cross-tenant reads.
  • Redis pub/sub for live status; React reconnects with last-event cursor.
  • Laravel jobs for geocode, ETA, and notification fan-out.
  • Peak-hour load test before cutover so the <3s target was measured, not hoped.

Tech Stack

Laravel React Redis
WhatsApp