80 releases
Uses new Rust 2024
| 0.1.0-nightly.20260127 |
|
|---|---|
| 0.1.0-dev.20260315.100 | Mar 15, 2026 |
| 0.1.0-dev.20260228 | Feb 28, 2026 |
#1142 in Network programming
369 downloads per month
Used in 2 crates
(via inferadb-ledger-sdk)
4.5MB
86K
SLoC
inferadb-ledger-raft
Raft consensus and gRPC services for InferaDB Ledger.
Overview
This crate provides the distributed consensus layer:
- OpenRaft integration: Log storage backed by
inferadb-ledger-store - gRPC services: Read, Write, Admin, Health, Discovery
- Multi-Raft: Multiple Raft groups for shard isolation
- Batching: Transaction batching for throughput optimization
- Idempotency: Server-side deduplication cache
Services
| Service | Purpose |
|---|---|
ReadService |
Entity/relationship queries, proofs |
WriteService |
Transactions with Raft replication |
AdminService |
Organization/vault management, cluster ops |
HealthService |
Liveness and readiness checks |
DiscoveryService |
Peer discovery via DNS |
Usage
use inferadb_ledger_raft::{LedgerServer, BatchConfig};
use inferadb_ledger_state::StateLayer;
use std::time::Duration;
// Configure batching with builder pattern
let batch_config = BatchConfig::builder()
.max_batch_size(100)
.max_batch_delay(Duration::from_millis(5))
.build();
let state = StateLayer::new(engine);
let server = LedgerServer::new(state, raft_config).await?;
// Start gRPC server
server.serve("[::]:50051").await?;
Architecture
gRPC Services
│
BatchWriter (coalesces writes)
│
OpenRaft (consensus)
│
RaftLogStore + StateLayer (storage)
License
MIT OR Apache-2.0
Dependencies
~44–67MB
~1M SLoC