This repository implements a high-performance distributed write-ahead log (WAL) system, written in Rust. It comprises a core WAL library (walrus-rust) with configurable storage backends (mmap, fd, io_uring), a Raft consensus library (openraft) for distributed metadata management, and a distributed application (distributed-walrus) that provides a TCP-based client-server architecture for topic-based streaming with lease-based write fencing and automatic segment rollover. The system is benchmarked against Kafka and RocksDB, includes a formal TLA+ specification, and is designed for crash-safe, low-latency persistent streaming. The architecture is layered: the Walrus WAL engine provides durable, topic-partitioned log storage with configurable fsync schedules and read consistency modes. The Octopii framework layer integrates QUIC transport and a flexible state machine. Openraft (vendored) provides full Raft consensus with leader election, log replication, snapshotting, and linearizable reads. The distributed-walrus application ties these together with a node controller, metadata state machine, and monitor loop for segment rollover. While primarily an application, the repository has strong research elements: extensive performance benchmarks (scaling, batch, multithreaded), formal verification via TLA+, and a focus on characterization of trade-offs between durability, latency, and throughput. The codebase is well-structured with clear abstractions, though it contains some duplicated code across the walrus and octopii directories and a large vendored copy of openraft.
Sorock is a Multi-Raft implementation in Rust that enables multiple Raft consensus processes to coexist in a single OS process for efficient resource sharing. The system implements a complete Raft consensus algorithm with optimizations including batched writes, heartbeat multiplexing, and Phi Accrual Failure Detector for adaptive leader failure detection. It provides gRPC services for client interaction (read/write operations) and includes CLI tools for cluster management (monitoring, remapping, syncing). The architecture follows a modular design where each shard maintains independent Raft state while sharing underlying storage and network connections.