Cluster Compatibility

Supported stacks

ComponentVersionNotes
Aeron Java/C media driver1.46.xarchive + consensus module
Aeron Cluster Java1.46.xclustered service container
rusteron (Rust bindings)0.2.xrusteron-client, rusteron-archive
ergo-sbe (codec generator)0.1.xschema 111 session + mark codecs
Rust1.88+MSRV, edition 2024
OSLinux x86-64, macOS aarch64CI-tested
Java17+test harness only

Schema identities

SchemaIdVersion
Aeron Cluster Session1111
Aeron Cluster Mark1121

These are pinned in cluster/schemas/ and generated by cluster/build.rs. The generated codec API is unstable — use the high-level AeronCluster client, not the cluster_codec_types module directly.

Failure modes

The client handles these documented transitions:

TriggerExpected behaviour
Leader loss (egress closed / publication CLOSED)Session → AwaitingNewLeader, poll for NewLeaderEvent
Redirect during connectFollow leader_endpoints to new leader
Auth challengePass to CredentialsSupplier, send ChallengeResponse
Auth rejectionClusterError::AuthRejected
Timeout (connect / poll / new-leader)ClusterError::Timeout / ClusterError::Disconnected
Listener panicClusterError::ListenerPanicked, session continues
Malformed egress frameClusterError::ProtocolError
Payload too largeClusterError::PayloadTooLarge
Publication backpressureRetryable ClusterError::Publication

Multi-node test matrix

CI (cluster-compatibility.yml) covers:

  • 3-node cluster: leader loss + redirect
  • Auth challenge/rejection
  • Fragmentation above max payload
  • Controlled abort/retry
  • Close + reconnect atomicity
  • Timeout expiry (sync + async)

Limitations

  • No dynamic membership (static cluster only).
  • No snapshot/recovery integration.
  • No TLS/mTLS at the Aeron transport layer.
  • The cluster_codec_types module is #[doc(hidden)] and not stable API.