Short answer: A resilient satellite and IoT data architecture separates device and ground-station connectivity, durable event ingestion, raw replayable history, schema and quality controls, time-series and geospatial transformation, governed serving layers, and operational monitoring. The design must expect intermittent links, bursty delivery, late and duplicated events, firmware-driven schema change, location context, and different latency requirements across operations, analytics, and AI.

Why Satellite and IoT Data Workloads Are Different
Telemetry is generated by physical systems that do not behave like a stable business application. A device can lose connectivity, buffer observations, restart with an incorrect clock, resend a batch, or change payload shape after a firmware release. A ground station can receive a concentrated burst during a contact window. Sensor readings can be valid technically but implausible physically. The architecture must preserve enough evidence to distinguish those conditions.
Design around event time and ingestion time separately. Event time describes when the observation occurred at the source; ingestion time records when the platform received it. Keeping both makes late-arrival policies, replay, latency measurement, and sequence analysis possible. Device or spacecraft identity, firmware or schema version, unit of measure, quality flags, and location context should travel with the observation or be resolvable through governed reference data.
Intermittent Connectivity
Sources may buffer and resend. Consumers need idempotent processing, deterministic keys, sequence handling, and a replay strategy.
Bursty Volume
Contact windows and fleet events create spikes. Ingestion and storage should absorb bursts without forcing every downstream consumer to scale at once.
Schema and Firmware Change
Payload changes must be versioned and evaluated for compatibility before dependent models and operational rules are affected.
Physical Context
Units, calibration, coordinate reference systems, device state, and observation quality determine whether a value is meaningful.
Satellite and IoT Reference Architecture
| Layer | Primary responsibility | Important design decisions |
|---|---|---|
| Edge and connectivity | Collect, buffer, secure, and transmit observations | Protocol, local retention, clock behavior, compression, retry, device identity |
| Ingestion gateway | Authenticate producers and accept variable delivery rates | Backpressure, quotas, encryption, payload limits, acknowledgement semantics |
| Event backbone | Durably decouple producers from consumers | Topic design, partition key, ordering scope, retention, replication, replay |
| Raw landing zone | Preserve source-aligned evidence for audit and reprocessing | Immutable objects, partitioning, checksum, source metadata, lifecycle policy |
| Validation and enrichment | Apply contracts, deduplication, units, reference data, and quality flags | Late-event window, dead-letter handling, version compatibility, calibration |
| Serving products | Support operations, analytics, geospatial queries, and AI | Time-series grain, GEOGRAPHY/GEOMETRY, aggregates, service levels, access |
| Control plane | Monitor lineage, health, quality, security, and cost | Owners, alerts, trace IDs, incident route, retention evidence, recovery tests |
Define an Event Contract Before Scaling
A contract makes producer and consumer assumptions explicit. It should define identity, timestamps, version, units, required fields, valid ranges, compatibility, and ownership. The example below is an illustrative envelope, not a universal standard; each mission or device domain should define the fields and guarantees it can actually support.
{
"event_id": "globally-unique-id",
"source_id": "device-or-spacecraft-id",
"schema_version": "2.1",
"event_time": "ISO-8601 timestamp from source",
"ingested_at": "ISO-8601 platform timestamp",
"sequence": 184223,
"location": {"longitude": -63.58, "latitude": 44.65},
"measurements": [
{"name": "temperature", "value": 18.4, "unit": "celsius"}
],
"quality_flags": [],
"trace_id": "end-to-end-correlation-id"
}
Quality Controls by Failure Mode
- Duplicate delivery: deduplicate on stable event identity or a documented composite key.
- Out-of-order events: process with event-time windows and preserve sequence evidence.
- Clock drift: compare source time, receive time, and known clock health before treating latency as real.
- Schema drift: validate version compatibility and route unsupported payloads without discarding them.
- Impossible values: apply device-state, calibration, unit, and physical-range rules with clear severity.
- Missing context: quarantine or enrich observations that lack device identity, unit, location, or required reference data.
Choose Streaming, Micro-Batch, or Batch by Decision Latency
Not every telemetry workload needs continuous stream processing. Use the latency of the business or operational decision, not the presence of sensors, to choose the pattern. A single architecture can support multiple paths from the same durable event and raw history.
| Pattern | Use when | Typical outputs | Main tradeoff |
|---|---|---|---|
| Streaming | Seconds or sub-seconds affect safety, availability, customer experience, or operations | Alerts, state changes, command eligibility, live fleet health | Higher operational complexity and stricter state handling |
| Micro-batch | Minutes are acceptable and grouped processing improves efficiency | Near-real-time dashboards, anomaly features, rolling aggregates | Small delay in exchange for simpler recovery and cost control |
| Batch | Decisions occur hourly, daily, or after a complete delivery window | Historical trends, billing, model training, regulatory or mission reports | Not suitable for immediate operational action |
Model Time, Position, and Observation Context Explicitly
Telemetry commonly combines a moving source, a timestamp, a measured phenomenon, and spatial context. Keep the coordinate reference system and units explicit. Longitude and latitude order, altitude support, planar versus spherical calculations, and geometry validity can change analytical results. Store or transform spatial values into native geospatial types where the platform and workload benefit, while preserving the original representation for traceability.
Separate immutable observations from changing reference data such as device ownership, calibration, orbit metadata, firmware, deployment site, and administrative region. Use effective dates so a historical event resolves to the context that was valid when it occurred rather than today’s device configuration.
- Keep event time, ingestion time, and processing time distinct
- Document coordinate reference system, axis order, altitude, and precision
- Use effective-dated reference data for device and calibration history
- Preserve raw payload, parser version, and transformed representation
- Define spatial indexing and clustering only after observing query patterns
Implementation Sequence
- Classify operational decisions. Identify which outcomes require seconds, minutes, or batch latency and what happens when data is missing or late.
- Define identity and time semantics. Standardize source identity, event identity, sequence, event time, ingestion time, units, and location representation.
- Publish versioned contracts. Document required fields, compatibility, ownership, quality ranges, retention, and deprecation behavior.
- Build durable ingestion and raw history. Decouple producers and consumers, preserve replayable source-aligned data, and verify recovery before adding many downstream products.
- Add validation and quarantine paths. Route malformed or unsupported events with enough context for diagnosis; do not silently discard evidence.
- Create purpose-built serving products. Separate operational state, historical analytics, geospatial products, and AI features according to their grains and service levels.
- Operate the control plane. Monitor lag, loss, duplicates, late arrivals, schema versions, quality, storage growth, access, and end-to-end lineage.
Metrics for a Reliable Telemetry Platform
- Events accepted, rejected, quarantined, duplicated, and replayed by source and schema version
- End-to-end latency percentiles using both event and ingestion time
- Consumer lag and backlog recovery time after a burst or outage
- Percentage of observations with valid identity, unit, time, and spatial context
- Schema compatibility failures and unsupported firmware versions
- Raw-to-serving reconciliation and missing-sequence rates
- Storage, compute, and network cost per useful telemetry product
Frequently Asked Questions
Do all satellite and IoT workloads need Kafka?
No. Kafka or another durable event backbone is useful when producers and consumers must be decoupled, events need replay, delivery is bursty, or multiple real-time consumers exist. Simpler managed queues, object ingestion, or batch transfers may be enough for lower-volume and higher-latency workloads.
How should late-arriving telemetry be handled?
Preserve event time and ingestion time, define an allowed lateness window by use case, update affected aggregates deterministically, and retain replay evidence. Operational views may use a tighter window than historical analytics.
What is the best storage pattern for satellite and IoT data?
A common pattern preserves immutable raw payloads, creates validated and enriched observation layers, and publishes purpose-built operational, analytical, and geospatial products. The exact technology depends on volume, latency, retention, query, and recovery requirements.
How should teams manage telemetry schema changes?
Use explicit schema versions, compatibility rules, contract tests, producer release coordination, and a quarantine path for unsupported events. Keep the parser version and original payload so historical data can be reprocessed when logic changes.
Design a Telemetry Platform That Can Be Replayed, Governed, and Operated
DataKrypton can assess event contracts, streaming topology, raw history, quality controls, geospatial modeling, serving products, and observability for satellite and IoT workloads.
