Skip to main content

Raft

Implements the Raft algorithm as a reliable transport protocol with integrated forward error correction and automatic repeat request (ARQ) mechanisms. This sophisticated transport layer provides guaranteed ordered delivery, fault tolerance, and data integrity through distributed consensus principles. Essential for mission-critical applications requiring guaranteed delivery, distributed system coordination, and reliable data replication across unreliable network infrastructures.

Tags: FEC, TRANSPORT_PROTOCOL, RELIABILITY

FieldTypeOptionalDescriptionDefault Value
StreamsStreamsNoThe Raft streams representing incoming data streams to be transmitted.
CarriersCarriersNoThe Raft carriers responsible for transporting data from the stream, protected with FEC and ARQ.
Max Packet BytesUint32YesThe maximum packet size in bytes that can be produced by the Raft carrier outputs.This is required to be specified in the case where the carriers MTU cannot be automatically dededuced, e.g., if two raft components are connected back to back.

Streams

FieldTypeOptionalDescriptionDefault Value
InputStringYes
OutputStringYes
Stream HandleUint32NoUnique identifier for the stream, must match the stream handle on the receiving end.
TimeoutUint32NoTimeout for the stream in milliseconds.100
Delivery PolicyDelivery PolicyYesDetermines how packets are delivered on the stream. 'on_timeout' delivers packets in-order after the specified timeout, favoring playout synchronization. 'on_ordered' delivers strictly in-order as soon as prior packets are handled, minimizing latency while preserving order.0
ExtensionExtensionYesOptional extensions to the Raft stream configuration.

Extension

FieldTypeOptionalDescriptionDefault Value
Fixed ReplicationFixed ReplicationNoForce raft to used fixed replication repair mode. This will automatically force all packets to be replicated to all valid carriers.

Fixed Replication

FieldTypeOptionalDescriptionDefault Value

Carriers

FieldTypeOptionalDescriptionDefault Value
InputStringNo
OutputStringNo
Carrier HandleUint32NoUnique identifier for the carrier, must match the carrier handle on the receiving end.