Acknowledgements: append, replication and writeback

Acknowledgements: append, replication and writeback A sequence diagram generated by Archify. ProduceRequest (acks=1) Local append · no per-record fsync guarantee ProduceResponse — no follower wait ProduceRequest (acks=all) Local append · required offset = last offset + 1 FetchRequest · follower 1 The follower initiates the fetch. FetchRequest · follower 2 FetchResponse — new records kafka-1 appends to its own log FetchResponse — new records kafka-2 appends to its own log Next FetchRequest — new LEO Next FetchRequest — new LEO → leader advances HW Tracks progress for the stable ISR. ISR changes and minISR also affect acknowledgement. ProduceResponse · HW ≥ last offset + 1 OS writeback · placement is schematic acks=1 · respond after leader append · B2 is a single-run observation acks=all · stable ISR of three shown · HW ≥ last offset + 1 and ISR condition Background writeback · can overlap the stages above Producer · Sequence participant Producer kafka-0 (leader) · Sequence participant kafka-0 (leader) kafka-1 (follower, ISR) · Sequence participant kafka-1 (follower, ISR) kafka-2 (follower, ISR) · Sequence participant kafka-2 (follower, ISR) Page cache (kafka-0 log) · Sequence participant Page cache (kafka-0 log) EBS gp3 (kafka-0 volume) · Sequence participant EBS gp3 (kafka-0 volume) Legend request return async trace default message