Introduction
Cerulion Core uses a dual-transport architecture that automatically selects the optimal communication path for each message. This page explains how local and network transports work.Dual Transport System
Local Transport (iceoryx2)
Purpose: Ultra-low latency communication between processes on the same machine. How it works:- Publisher allocates shared memory region
- Data is written directly to shared memory (no serialization)
- Subscriber reads from the same memory location
- Zero-copy means no data copying occurs
- Latency: < 1 μs for small messages
- Throughput: Limited by memory bandwidth
- Range: Same machine only
- Serialization: None (raw bytes)
The zero-copy design means that for local communication, Cerulion Core is essentially just a shared memory allocator. There’s no serialization overhead, making it ideal for high-frequency sensor data or real-time control loops.
Network Transport (Zenoh)
Purpose: Reliable communication across machines and networks. How it works:- Cerulion allows users to display all available topics on any device running Cerulion on the network
- Subscriber specifies which topic to subscribe to
- Cerulion determines whether the topic is found locally or not
- If the topic is not found locally, Cerulion requests the topic over the network
- Any Cerulion machine with that topic will now broadcast over Zenoh and locally
- Publisher sends message to background thread (non-blocking)
- Background thread serializes data to bytes
- Serialized bytes sent over Zenoh network
- Subscriber receives and deserializes
- Latency: 1-10 ms (network dependent)
- Throughput: Network bandwidth limited
- Range: Any machine on network
- Serialization: Automatic (raw bytes for Copy types)
- Latest-message semantics: Only the latest message is queued
Network publishing happens asynchronously on a background thread. This means local publishing never blocks waiting for network I/O, ensuring high availability even when the network is slow. Network latency doesn’t slow down local publishing.
Transport Comparison
| Characteristic | Local Transport (iceoryx2) | Network Transport (Zenoh) |
|---|---|---|
| Latency | < 1 μs | 1-10 ms |
| Throughput | Memory bandwidth limited | Network bandwidth limited |
| Range | Same machine only | Any machine on network |
| Serialization | None (raw bytes) | Automatic (raw bytes for Copy types) |
| Blocking | Minimal (memory alloc) | Non-blocking (background thread) |
| Use Case | High-frequency sensor data, real-time control | Distributed systems, cross-machine communication |
Automatic Selection
Cerulion Core automatically selects the best transport for each communication path:- Local transport is used when publisher and subscriber are on the same machine
- Network transport is used when publisher and subscriber are on different machines
- The selection happens transparently - you don’t need to specify which transport to use
The system automatically detects whether a topic is available locally or needs to be accessed over the network. This ensures optimal performance without requiring manual configuration.