What a fleet actually produces, why almost none of it can be sent anywhere, and the filtering decisions that determine whether a data programme is useful or merely expensive.
Intermediate7 minData · Cloud · Telemetry
"Vehicles generate terabytes of data" appears in every SDV presentation. It is
true and almost entirely misleading, because the interesting question is not how
much is generated but how little can usefully leave.
Volume falls by orders of magnitude at every stage — Each stage exists to discard data. The design work is deciding what to discard, and that decision has to happen on the vehicle.
Batched, compressed, authenticated, usually MQTT or HTTPS. The cloud side is
ordinary data engineering: ingest, validate, store, and make queryable.
Gotcha
Schema evolution is the part that bites. Vehicles in the field run software from
several model years, all emitting slightly different payloads for years.
Version every message, never reuse a field name with a new meaning, and make the
ingestion side tolerant of both older and newer shapes than it expects. A schema
change that assumes the whole fleet updates together is a schema change that will
lose data.
The categories of data, and their different rules#
Not all vehicle data is the same kind of thing, and treating it uniformly is a
mistake.
Your app telemetry is part of a shared budget. An analytics SDK sending
events per interaction is trivial on a phone and can be significant across a
fleet on metered cellular. Batch, aggregate, and consider whether each event
earns its bytes.
Aggregate before sending, not after. The instinct from server work — collect
everything, decide later — inverts here. Deciding later means paying to transmit
data you will discard.
Design for offline as the normal case. Not an error path. Queue, persist
across reboot, and define what gets dropped when the queue is full.
Never log location or personal data casually. A debug log with GPS
coordinates that syncs to a backend is a compliance incident, and the
investigation will find it.
Know which consent your feature depends on. If it needs behavioural data,
what happens for a customer who declined? "It silently does nothing" is not an
acceptable answer.