Skip to main content

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:
  1. Publisher allocates shared memory region
  2. Data is written directly to shared memory (no serialization)
  3. Subscriber reads from the same memory location
  4. Zero-copy means no data copying occurs
Characteristics:
  • 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:
  1. Cerulion allows users to display all available topics on any device running Cerulion on the network
  2. Subscriber specifies which topic to subscribe to
  3. 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
  4. Publisher sends message to background thread (non-blocking)
  5. Background thread serializes data to bytes
  6. Serialized bytes sent over Zenoh network
  7. Subscriber receives and deserializes
Characteristics:
  • 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

CharacteristicLocal Transport (iceoryx2)Network Transport (Zenoh)
Latency< 1 μs1-10 ms
ThroughputMemory bandwidth limitedNetwork bandwidth limited
RangeSame machine onlyAny machine on network
SerializationNone (raw bytes)Automatic (raw bytes for Copy types)
BlockingMinimal (memory alloc)Non-blocking (background thread)
Use CaseHigh-frequency sensor data, real-time controlDistributed 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.

Next Steps