MQTT is the primary boundary. Subscribe using a least-privilege account, validate event versions, store the original bytes/JSON before normalization, and make processing idempotent. Topic templates are deployment configuration and must be verified locally.
The supplied fixture mirrors the requested snake_case sample, while official ChirpStack integration JSON uses Protobuf JSON conventions in many paths. The parser must eventually support the exact captured payload rather than assume casing. Capture tasks must determine:
- topic and serialization (JSON versus Protobuf),
- integration
UplinkEventversus gatewayUplinkFrame, - field casing and Duration representation,
- deduplication identifiers and redelivery semantics,
- presence of
fine_time_since_gps_epoch/fineTimeSinceGpsEpoch.
nsTime, gwTime, concentrator context, and Fine Timestamp must remain distinct.
ChirpStack v4 integration events
defines UplinkEvent; gateway events
documents UplinkFrame metadata.