
The Ingestion Tier Is Where Telematics Projects Break
A tracking platform is only as good as the backend that receives its data. Teams often start with a single server parsing device messages in a request handler, and it works fine for a pilot fleet. Then the device count grows, trackers reconnect in bursts after a tower outage, and the parser falls behind. Messages queue up in kernel buffers, positions arrive minutes late, and the live map stops being live. Built as a dedicated, horizontally scalable system from the start, the ingestion tier turns throughput into a capacity question rather than a rewrite.
One layer of the full telematics software platform platform, working closely with Device to Cloud Protocol Engineering.
SCOPE OF WORK
What the Backend Includes
MQTT and TCP Listeners
MQTT brokers such as EMQX or VerneMQ serve devices that support them, while dedicated TCP socket listeners handle trackers that speak a proprietary binary protocol over a raw connection. Both terminate connections, manage keep-alives, and hand raw frames to the decoder layer.
Protocol Decoders
Decoders cover the device protocols in your fleet, whether that is a vendor format like the common GT06 and Concox families, an AIS 140 packet, or a CAN/J1939 payload forwarded from an OBD-II device. Each decoder normalizes its output into one internal message schema.
Message Queue Layer
A durable queue built on Kafka or NATS JetStream sits between ingestion and processing. Decoded messages are partitioned by device or tenant so consumers scale out independently, and a slow downstream job never blocks the listeners accepting new connections.
Time-Series Storage
Position and telemetry data is persisted in a time-series database, typically TimescaleDB for SQL compatibility or InfluxDB for pure metric workloads. Hypertables and retention policies keep recent data fast to query and age older data into cheaper storage automatically.
Multi-Tenant Data Model
The schema scopes every device, message, and query to a tenant. Row-level isolation and tenant-aware indexes keep customers separated, with optional schema or database separation for enterprise accounts that require it.
Horizontal Scaling
Listeners, decoders, and consumers are containerized so each tier scales independently. The ingestion tier stays stateless behind a load balancer, the queue absorbs bursts, and the database is partitioned for write throughput at millions of pings a day.
TECHNICAL APPROACH
How the Pipeline Is Built
Data flows through four clear stages. Devices connect to a listener, raw frames are decoded into a normalized message, the message lands on a partitioned queue, and consumers write it to the time-series store while updating live state. Each stage is independently deployable, so the part under pressure scales without touching the rest.
Connect and Decode
Listeners terminate MQTT and raw TCP sessions and parse incoming frames. Decoders validate checksums, handle partial packets across TCP reads, and reject malformed data before it pollutes the pipeline.
Queue and Process
Normalized messages are published to Kafka or NATS, partitioned by device key. Consumer groups process in parallel, enrich messages with geofence and trip context, and acknowledge only after a durable write.
Store and Serve
TimescaleDB hypertables hold the historical track while a Redis layer holds last-known position for the live map. Continuous aggregates pre-compute daily and hourly rollups for fast reporting queries.
INTEGRATION AND OUTPUTS
What the Backend Connects To
Real-Time Feed to Dashboards
The backend pushes live position updates to web and mobile clients over WebSocket. Last-known state in Redis means a dashboard that connects mid-session renders the full fleet immediately rather than waiting for the next ping.
Query API for Reporting
Authenticated REST and query endpoints over the time-series store let reporting, analytics, and billing services read clean, tenant-scoped data without touching the raw ingestion path.
Event Stream for Downstream Services
Geofence crossings, ignition events, and alert triggers are published as events on the queue, so the alerts engine and any integration consumers subscribe to exactly what they need without polling the database.
Observability and Replay
Every tier is instrumented with metrics on ingest rate, queue lag, and decode errors. Because messages are durable in the queue, a window of traffic can be replayed to recover from a downstream bug without losing device data.
FAQ
Common Questions
Can the backend handle millions of pings per day?
Yes. The ingestion tier is sized for the peak ping rate, not the average. A fleet of 50,000 devices reporting every 10 seconds generates roughly 430 million messages a day, and partitioning the message queue and time-series tables lets throughput scale horizontally by adding consumer instances rather than rewriting the pipeline.
Does the backend use MQTT or raw TCP for device connections?
Both, depending on the tracker. Many low-cost GPS trackers speak a proprietary binary protocol over a raw TCP socket, so dedicated TCP listeners with protocol-specific decoders handle them. Devices that support MQTT connect to a broker such as EMQX or VerneMQ. Both paths are normalized into a single internal message schema before they hit the queue.
Which time-series database is recommended?
TimescaleDB fits teams that want PostgreSQL compatibility and SQL joins against relational fleet data, while InfluxDB suits workloads that are almost purely metrics with high cardinality. The choice follows your query patterns, retention needs, and existing operations stack rather than a fixed preference.
How is one customer kept from seeing another customer data?
Multi-tenancy is enforced at the data model and query layer. Every device, message, and query is scoped to a tenant ID, row-level isolation is applied in the database, and the API authorizes every request against the caller tenant. For larger customers, schema or database separation is also supported.
Need a Backend That Scales With Your Fleet?
Share your device count, protocols, and reporting interval to get a mapped-out ingestion architecture and a clear view of how it holds up at peak load.
Schedule a Free Consultation