HandoffLog
A log whose own commits reach its tails in memory: each stream an append of this node commits is handed, as the entry EventLog.tail would read (its position, the stream and its transport as appended), to the tails of its partition open on this node, so the partition owner's subscriptions do not read back what it has just written.
The log stays the only source of truth. A tail delivers entries in sequence order and only the run contiguous with its position: it reads the store from that position whenever memory cannot continue the run, and drops what it has delivered already, so losing a hand-over costs a read of the store and never an entry:
on opening (a start, a restart, a partition acquired): up to the partition's head;
on a gap no append of this node can fill any more: every append in flight when the gap appeared returned, and none handed the missing sequence over (another node's append during a hand-off; a commit whose outcome was AppendOutcome.Unknown), or HandoffOptions.gapWait passed while one of them is still in flight;
on an overflow: a tail holding HandoffOptions.capacity entries it has not taken drops the next ones, so a slow subscription never holds up an append;
after HandoffOptions.probeInterval without a hand-over, when the head is past its position: entries other nodes appended. The head may also show a commit of this node whose append has not returned yet (the store's answer on its way back): while an append of this node is in flight, the probe waits for it to hand its entry over, as on a gap, delivers it, and reads the store at once for what the head shows past it (other nodes' entries), or when the append returns without the entry the tail needs.
Each read of the store is reported to observer (ObservedEvent.TailRead) with its reason, and each entry it delivers to readBack: among them are the commits of other nodes, which no hand-over brings. A node that does not own a partition opens no tail of it, so what it appends there (Local execution) is handed to no one; its owner's tails read it from the store.