Skip to main content

gonzalo_soak/
lib.rs

1//! HA soak harness for gonzalo (#52): drive N stateless `gonzalod` replicas
2//! over a shared S3 backend (RustFS) under replica-kill chaos, and assert
3//! gonzalo's core invariant — concurrent edits are never silently lost.
4//!
5//! The crate is split into pure-logic pieces (unit-tested without any backend)
6//! and integration pieces that need a live S3 backend + `gonzalod` binary:
7//!
8//! - [`oracle`] — the safety/liveness invariant checker (pure).
9//! - [`dispatch`] — round-robin + failover across live replicas (pure, mockable).
10//! - [`target`] — the S3 endpoint from the env, or skip (pure).
11//!
12//! Integration pieces (`replica`, `workload`) are added on top and exercised by
13//! `tests/ha_soak.rs` (the bounded per-PR gate) and the `gonzalo-soak` binary
14//! (the deep soak), both of which skip/error unless a S3 target is set.
15
16pub mod dispatch;
17pub mod harness;
18pub mod oracle;
19pub mod replica;
20pub mod target;
21pub mod workload;