Data Delivery Object (DDO)¶
A DDO (Data Delivery Object) is the fundamental unit of data exchange in the DaaS-IoT overlay.
Every message, event, telemetry packet, configuration update, or synchronization signal is encapsulated inside a DDO.
DDOs provide a unified abstraction over heterogeneous transports (INET4, Bluetooth, etc.), ensuring consistent behavior across platforms.
1. Purpose of a DDO¶
A DDO serves as a self-describing container that includes:
- message metadata
- routing and addressing information
- semantic classification (typeset)
- payload data
- timing information
This abstraction allows DaaS-IoT to remain independent of the underlying transport layer while preserving deterministic message handling.
2. Structure of a DDO¶
A typical DDO includes the following fields:
DIN¶
The unique 32-bit identifier of the sender or receiver node.
Typeset¶
A 16-bit message classifier describing the semantic meaning of the payload.
Timestamp¶
Time-synchronization metadata used for ordering, delay estimation and diagnostics.
Payload¶
The raw binary content interpreted according to the typeset schema.
Size¶
Total payload length (in bytes).
3. DDO Lifecycle¶
1. Creation¶
The sender node constructs a DDO, sets its typeset, attaches the payload and prepares it for transmission.
2. Serialization¶
The DDO is encoded into a transport-ready buffer by the SDK.
3. Transmission¶
Drivers (INET4, Bluetooth, etc.) deliver the DDO to the destination DIN.
4. Reception¶
The receiving node reconstructs the DDO and extracts metadata and payload.
5. Handling¶
Based on the typeset, the DDO is dispatched to the correct handler, decoder or subsystem.
4. Role of DDOs in the Overlay¶
DDOs provide:
- consistency across heterogeneous transports
- predictable message boundaries
- timestamp-based ordering
- integration with routing metrics
- support for system messages (Frisbees, dATS packets, topology updates)
The DaaS-IoT Python binding (pydaasiot) exposes high-level APIs to construct,
manipulate and inspect DDOs directly.
Summary¶
DDOs form the backbone of communication in the DaaS-IoT overlay, delivering a clean, transport-independent mechanism for reliable, structured message exchange across nodes.