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
| Field | Type | Optional | Description | Default Value |
|---|
| Streams | Streams | No | The Raft streams representing incoming data streams to be transmitted. | |
| Carriers | Carriers | No | The Raft carriers responsible for transporting data from the stream, protected with FEC and ARQ. | |
| Max Packet Bytes | Uint32 | Yes | The 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
| Field | Type | Optional | Description | Default Value |
|---|
| Input | String | Yes | | |
| Output | String | Yes | | |
| Stream Handle | Uint32 | No | Unique identifier for the stream, must match the stream handle on the receiving end. | |
| Timeout | Uint32 | No | Timeout for the stream in milliseconds. | 100 |
| Delivery Policy | Delivery Policy | Yes | Determines 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 |
| Extension | Extension | Yes | Optional extensions to the Raft stream configuration. | |
Extension
| Field | Type | Optional | Description | Default Value |
|---|
| Fixed Replication | Fixed Replication | No | Force raft to used fixed replication repair mode. This will automatically force all packets to be replicated to all valid carriers. | |
Fixed Replication
| Field | Type | Optional | Description | Default Value |
|---|
Carriers
| Field | Type | Optional | Description | Default Value |
|---|
| Input | String | No | | |
| Output | String | No | | |
| Carrier Handle | Uint32 | No | Unique identifier for the carrier, must match the carrier handle on the receiving end. | |
| Bandwidth Priority | Uint32 | Yes | When set, enables bandwidth-driven operation where Raft only accepts packets that can be transferred given the current carrier bandwidth estimates. Either none or all carriers must have a priority set. Raft selects the highest priority carrier(s) until their estimated bandwidth capacity is reached. Higher values indicate higher priority, and carriers with the same priority are selected in a round-robin fashion. | 0 |
| Max Bandwidth Mbps | Uint32 | Yes | Maximum bandwidth in megabits per second that this carrier can use. This is only used when the in bandwidth-driven operation. | 1 |
| Force Max Bandwidth | Bool | Yes | If set to true, the carrier will use the specified max_bandwidth_mbps as the bandwidth estimate. | false |