Add stemedb-cluster crate implementing horizontal scaling: - SWIM-based membership protocol for node discovery and failure detection - Consistent hashing (jump hash) for subject-to-shard routing - Range management with dynamic split (>64MB) and merge (<20MB) operations - Stateless HTTP gateway for client request routing via axum - Meta-range gossip merge for cluster-wide metadata propagation Includes restrictive CORS policy, proper error propagation from routing, replica cache invalidation on node failure, and 84 tests (57 unit + 27 integration). Raft MV coordination deferred per design decision. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
32 lines
727 B
TOML
32 lines
727 B
TOML
[workspace]
|
|
members = [
|
|
"crates/stemedb-core",
|
|
"crates/stemedb-wal",
|
|
"crates/stemedb-storage",
|
|
"crates/stemedb-ingest",
|
|
"crates/stemedb-query",
|
|
"crates/stemedb-lens",
|
|
"crates/stemedb-sim",
|
|
"crates/stemedb-api",
|
|
"crates/stemedb-merkle",
|
|
"crates/stemedb-rpc",
|
|
"crates/stemedb-sync",
|
|
"crates/stemedb-cluster",
|
|
]
|
|
resolver = "2"
|
|
|
|
[profile.release]
|
|
lto = true
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
|
|
[workspace.lints.rust]
|
|
unsafe_code = "forbid"
|
|
missing_docs = "warn"
|
|
|
|
[workspace.lints.clippy]
|
|
unwrap_used = "deny"
|
|
expect_used = "deny"
|
|
panic = "deny"
|
|
print_stdout = "warn" # Use tracing instead; allowed in CLI binaries
|
|
print_stderr = "warn" # Use tracing instead; allowed in CLI binaries |