Expand description
In-process harness for cluster integration tests. Gated because it pulls in chitchat on loopback UDP. MiniCluster — in-process harness for cluster-control integration tests.
Spawns N chitchat instances on loopback UDP, each wrapped in a
GossipDiscovery +
ClusterController pair.
Shared by the integration test matrix in
tests/cluster_integration.rs; designed to be reusable from
downstream crates (laminar-db, laminar-server) as dev-dependency.
§Scope
- Real chitchat gossip;
gossip_intervaltuned down to 50 ms to keep convergence under a second. - Loopback UDP only; each node binds to
127.0.0.1:0(ephemeral) and records the assigned port before handing off to chitchat. - No LaminarDB engine — just the cluster primitives. Full engine harness is a follow-up when the checkpoint flow consumes the controller.
§Not production API
Gated on cluster-unstable. The APIs here are test helpers;
expect churn.
Structs§
- Faulty
Object Store - Object store middleware with runtime-flippable fault injection.
- Mini
Cluster - Builder + wrapper for a set of in-process cluster nodes.
- Network
Rules - Shared per-cluster partition rules. Each (src, dst) pair in the
set causes sends from
srctodstto be silently dropped. The rules are bidirectional when set viaSelf::partition; one-way partitions can be constructed by adding a single pair viaSelf::drop_pair. - Node
Handle - One instance of the mini-cluster: a gossip discovery + controller.
- Partitionable
Transport - Chitchat transport that delegates to a real [
UdpTransport] but consults a sharedNetworkRulesbefore each send. Packets destined for a partitioned peer are silently dropped.
Enums§
- Object
Store Fault - Fault mode for
FaultyObjectStore, flippable at runtime.