Fleet Telemetry & Real-Time Monitoring System
Delivered as part of the engineering team on a staffed engagement with a partner company.
The client runs a fleet telematics platform for vehicle owners and operators, pairing real-time GPS tracking with onboard fuel-system integration to cut fuel costs and improve fleet oversight. Fleet operators managing multiple vehicles use it to monitor live location and speed, restrict refueling to approved stations, track driver behavior and vehicle diagnostics, and get daily reports on usage and savings across the fleet. White Buffalo built the backend and dashboard that turn that stream of onboard device data into a live, fleet-wide operational view.
Challenge
The client needed to collect live telemetry from a vehicle fleet and give operations staff a real-time view of fleet status, with the ability to send commands back to vehicles.
What we built
- —Two-way WebSocket communication between vehicles and backend (Go)
- —Message-driven ingestion pipeline (Kafka/RabbitMQ)
- —Time-series storage with custom stored procedures (TimescaleDB)
- —Live operations dashboard (React) and supporting APIs (Node.js)
- —Automated deployment pipeline (Jenkins, Docker Swarm)
Under the hood
Each vehicle holds a persistent WebSocket connection back to a Go service: location, speed, fuel-system readings, and diagnostic events stream up continuously, while commands and configuration — geofences, approved refueling stations, alert thresholds — flow back down to the onboard unit. Go's lightweight goroutine model let a single service hold a large number of concurrent per-vehicle connections without a thread-per-connection cost.
Incoming telemetry is published onto Kafka/RabbitMQ rather than written straight through by the connection layer, decoupling the live vehicle link from everything downstream. Ingestion consumers — one persisting raw readings, another evaluating alert rules like speeding or geofence violations — scale and restart independently, and a slow consumer never backs up onto the vehicle connection itself.
Telemetry lands in TimescaleDB as hypertables partitioned by time, with custom stored procedures computing the rollups the platform reports on — daily fuel savings, CO2 estimates, per-vehicle and fleet-wide usage — so those numbers are precomputed rather than recalculated from raw readings on every request.
A Node.js API layer exposes vehicle status, route/trip history, and fleet analytics as REST endpoints, and handles the command path for dispatching configuration and alert-rule changes back through the Go connection layer to specific vehicles.
The React operations dashboard consumes those APIs to show live fleet position, route history, alerts, and savings/emissions reporting. The full stack — connection layer, ingestion consumers, API, dashboard — deploys as containers on Docker Swarm through a Jenkins CI/CD pipeline.