USDOT ITS JPO Operational Data Environment (ODE) — Kafka event surface
Version 1.0.0
DERIVED, NOT PUBLISHED BY USDOT. The U.S. Department of Transportation publishes no AsyncAPI document. This document is a faithful derivation of the Kafka topic catalog the USDOT ITS Joint Program Office declares verbatim in github.com/usdot-jpo-ode/jpo-ode at jpo-ode-svcs/src/main/resources/application.yaml (ode.kafka.topics), read on 2026-07-28. Every channel address below is a topic name copied from that file; no topic, message or payload was invented. The ODE is deployable connected-vehicle infrastructure, not a DOT-hosted service. There is no public DOT-operated broker: an operator (a state DOT, a research site) runs the ODE against its own Kafka cluster and its own roadside units. Payload schemas are the ODE JSON projections of SAE J2735 messages, documented in the ODE User Guide; they are deliberately left unresolved here rather than guessed.
View SpecView on GitHubTravelUnited StatesAviationAirlinesAirportsGovernmentRegulatorDistributionAviation Consumer ProtectionOpen DataTransportationSafetyStatisticsAutomotiveRailAsyncAPIWebhooksEvents
Channels
Asn1DecoderInput
ASN.1 UPER-encoded messages queued for decoding.
Asn1DecoderOutput
Decoded ASN.1 output emitted by the asn1_codec.
Asn1EncoderInput
Messages queued for ASN.1 UPER encoding prior to RSU or SDX deposit.
Asn1EncoderOutput
ASN.1 UPER-encoded output ready for deposit.
OdeBsmJson
Basic Safety Messages (SAE J2735 BSM) as ODE JSON.
OdeMapJson
MAP intersection geometry messages as ODE JSON.
OdePsmJson
Personal Safety Messages (vulnerable road users) as ODE JSON.
OdeSpatJson
Signal Phase and Timing messages as ODE JSON.
OdeSrmJson
Signal Request Messages as ODE JSON.
OdeSsmJson
Signal Status Messages as ODE JSON.
OdeTimJson
Traveler Information Messages as ODE JSON.
OdeSdsmJson
Sensor Data Sharing Messages as ODE JSON.
OdeRtcmJson
RTCM differential correction messages as ODE JSON.
OdeRsmJson
Road Safety Messages as ODE JSON.
OdeDriverAlertJson
Driver alert events emitted by the ODE.
FilteredOdeBsmJson
BSMs after privacy filtering (jpo-cvdp privacy protection module).
FilteredOdeSpatJson
SPaT messages after filtering.
FilteredOdeTimJson
TIMs after filtering.
OdeTimJsonTMCFiltered
TIMs filtered for Traffic Management Center consumption.
OdeTIMCertExpirationTimeJson
Security-credential expiration times for deposited TIMs.
OdeTimKTableJson
Kafka Streams KTable of current TIM state.
OdeRawEncodedBSMJson
OdeRawEncodedMAPJson
OdeRawEncodedPSMJson
OdeRawEncodedSPATJson
OdeRawEncodedSRMJson
OdeRawEncodedSSMJson
OdeRawEncodedTIMJson
OdeRawEncodedSDSMJson
OdeRawEncodedRTCMJson
OdeRawEncodedRSMJson
SDWDepositorInput
Messages queued for deposit into the Situation Data Exchange (SDX).
Servers
kafka
kafka
Operator-supplied Kafka cluster. Configured through the ODE_KAFKA_BROKERS environment variable; the ODE also supports Confluent Cloud via CONFLUENT_KEY / CONFLUENT_SECRET. No U.S. DOT public broker exists.