Status: IN
`append_batch` checks `expected_version` once before the write loop; it does not re-check after each event, so the guard is a pre-condition gate that rejects the entire batch cleanly on mismatch, not a per-event invariant
Source: entries/2026/05/29/topic-event-sourcing-concurrency-model.md