Subsystem 01
GPS telemetry ingestion
Terminates cellular connections and decodes GPS packets
Typical stack
Go gateway + MQTT
Reference architecture
Track fleets of 100,000+ delivery vehicles in real time, with sub-second GPS ingestion, geofence alerts and spatial queries that stay fast.
Design constraints
Targets for the scenario this reference is sized for. A real engagement starts by replacing them with your own numbers.
Component topology
Subsystems with separate responsibilities, clear contracts between them and storage that scales on its own. The stack named for each is typical, not mandatory.
Stack topology
Real-time geospatial fleet tracking and geofencing engine
Illustrative reference architecture
GPS telemetry ingestion
Terminates cellular connections and decodes GPS packets
Go gateway + MQTT
In-memory geofence engine
Real-time geofence evaluation and proximity tracking
Tile38 in-memory spatial database
Persistent geospatial store
Route history and complex GIS queries
PostgreSQL + PostGIS
Live map dispatcher
Streams moving vehicle markers to dispatcher dashboards
Next.js + Mapbox GL + WebSockets
Subsystem 01
Terminates cellular connections and decodes GPS packets
Typical stack
Go gateway + MQTT
Subsystem 02
Real-time geofence evaluation and proximity tracking
Typical stack
Tile38 in-memory spatial database
Subsystem 03
Route history and complex GIS queries
Typical stack
PostgreSQL + PostGIS
Subsystem 04
Streams moving vehicle markers to dispatcher dashboards
Typical stack
Next.js + Mapbox GL + WebSockets
Data lifecycle
Each vehicle tracker publishes its position (lat, lng, speed, heading) over MQTT.
The Go gateway decodes the binary packet and publishes the update to Tile38.
Tile38 checks the position against active geofence polygons (warehouses, customer drop-offs).
Entering or leaving a geofence fires a webhook that sends the customer an SMS.
A batch writer stores trajectories in PostGIS tables for long-term route analysis.
Reliability and resilience
Failure mode 01
Mitigation
Kalman filtering smooths noisy coordinates, and map matching snaps them to the road network.
Failure mode 02
Mitigation
Partition tracking tables by date and vehicle_id, with GiST indexes on each partition.
Failure mode 03
Mitigation
Trackers buffer coordinates locally and send the backlog when 4G or 5G returns.
Questions
Tile38 runs entirely in memory and is built for real-time geofence checks, while PostGIS handles complex queries over persistent history.
With Mapbox GL or deck.gl, using WebGL instanced rendering that updates coordinate buffers instead of recreating DOM elements.
Send us your requirements, expected load and budget. We'll reply within one business day with an honest read on the design, and on whether we're the right team to build it.