connex-rs

The Connex data plane in Rust over UCX. GPUDirect transfers, millisecond peer-death events, same-identity rejoin.

connex-rs. Rust over UCX, peer-death events in milliseconds, same-identity rejoin.

connex-rs is the data plane Connex uses on RDMA. It moves pipeline-step bytes between endpoints, and it tells those endpoints within milliseconds when a peer process has died. A stage that restarts under the same logical id is the same peer to everyone else. Steady-state transfers match Mooncake Transfer Engine on the same cluster. The code is at HeterInfra/connex-rs. The SIGCOMM 2026 paper is (Lin et al., 2026).

Connex decides who should receive a step, and what a retry means. connex-rs is the engine those calls land on. It is Rust over UCX, with a Python binding. On a host with a usable RDMA device it is the default. One-sided reads and writes run on registered memory, host or GPU, through GPUDirect. A peer URL is bound to a logical id, ip:port#model|stage|shard|replica, so a restarted stage rejoins without the rest of the chain coming down.

connex-rs progress thread between the Connex caller and UCX. Peers are keyed by logical id. A failed peer is reported in milliseconds.
A progress thread owns the UCX worker. Callers submit transfers and wait. A dead process shows up as an event, and a restart under the same id shows up as a rejoin.

The failure signal is the part a plain transfer engine does not give you. Every UCX endpoint runs with peer error handling. When a process dies, its kernel tears the connection down, and the event arrives in a few milliseconds. Hung or partitioned peers still fall back to a heartbeat and a probe. With Mooncake on the same Connex path, a killed stage is found by a lease and a timeout, and putting that stage back under the same identity breaks its peers.

Handover latency and steady-state latency for connex-rs and Mooncake Transfer Engine on the same Llama-3-8B pipeline.
Llama-3-8B, four pipeline stages on A40, InfiniBand, GPUDirect. Handover is the time from the kill to the next token. Steady-state latency stays side by side.

On that deployment, a one-sided GPU-to-GPU read is 8 to 10 microseconds at 16 KB and 1.69 milliseconds at 16 MB, in line with Mooncake. Trace replay keeps 100 percent goodput on both, and mean end-to-end latency at 2, 4, and 8 queries per second stays within a few tens of milliseconds. The handover median is 0.02 to 0.03 seconds with one step in flight, and 0.01 to 0.83 seconds with four, against 2 to 3 seconds on Mooncake. Across 18 kill runs, every request completes and 0 tokens fall off the argmax. One hundred kill and rejoin cycles leave file descriptors, RSS, and registered memory flat.

The release is Apache-2.0. HeterInfra/connex-rs is the repository. Connex selects it with pip install "connex-ai[rs]".

Connex asks how a serving endpoint keeps one logical identity while the process behind it joins, leaves, fails, or moves, and how in-flight steps stay correct across that change.

References

2026

  1. SIGCOMM26
    Connex: Endpoint Mobility Primitives for Dynamic LLM Serving
    Yanying Lin, Vincent Liu, Tao Luo, Chengzhong Xu, and Kejiang Ye
    In Proceedings of the ACM SIGCOMM Conference, 2026