Observation — db-23 capstone

What we measured during development

1. Log + commit_index advance lock-step on happy path

Three submits with no fault:

after submit Put(1,100): log=[1] commit=1 kv={1:100}  (all 3 nodes)
after submit Put(2,200): log=[1,2] commit=2 kv={1:100,2:200}
after submit Del(1):     log=[1,2,3] commit=3 kv={2:200}

Each submit returns synchronously with all three nodes already in the post-state. This is the put_then_del_replicates test.

2. Quorum still progresses with one follower down

Take follower 1 down between submits. Leader + follower 2 still form a quorum:

follower 1 down.
submit Put(2,2): leader.commit=2 follower2.commit=2 follower1.commit=1
submit Put(3,3): leader.commit=3 follower2.commit=3 follower1.commit=1

This is the fault_window_then_catchup_converges test. After catch_up(1):

follower1.log.len = 3, follower1.commit = 3, follower1.kv = {2:2, 3:3}

3. The snapshot is byte-identical across languages

For both frozen scenarios:

[normal] rust=5976b45b9f40f440e8249da27fe4fe752e005f606efc3596bdb25ca4e4f99296
[normal] go  =5976b45b9f40f440e8249da27fe4fe752e005f606efc3596bdb25ca4e4f99296
[normal] cpp =5976b45b9f40f440e8249da27fe4fe752e005f606efc3596bdb25ca4e4f99296
[normal] gold=5976b45b9f40f440e8249da27fe4fe752e005f606efc3596bdb25ca4e4f99296
[fault]  rust=d67c36725af65242e985a308db5152af2a3e2525fab33d11ed6e826a252ff792
[fault]  go  =d67c36725af65242e985a308db5152af2a3e2525fab33d11ed6e826a252ff792
[fault]  cpp =d67c36725af65242e985a308db5152af2a3e2525fab33d11ed6e826a252ff792
[fault]  gold=d67c36725af65242e985a308db5152af2a3e2525fab33d11ed6e826a252ff792

This is what scripts/cross_test.sh prints on success.

4. Snapshot size for a 1-write cluster

8 magic + 1 id + 8 term + 8 commit + 4 log_len
+ 1 entry of (8+8+1+8+8) = 33
+ 4 kv_len + 1 kv of (8+8) = 20
= 82 bytes per node × 3 nodes = 246 bytes total

Verified in snapshot_layout_smoke tests in all three languages.

What we did not observe

  • Any divergence between languages, ever, on either scenario.
  • Any nondeterminism within a single language (each scenario run twice in the determinism tests).
  • Any case where a follower's log moved ahead of the leader — by construction, only the leader appends new entries; followers only ever copy.

Caveat

The cluster is in-process. We cannot observe real network behavior — no message loss, reordering, or partial partitions. The lab models replication semantics under controlled failures, not network robustness. The latter is left to the broader ideas / future work.