Package-level declarations
Types
What EventLog.readTail reads of one aggregate in one round trip: its streams from a version on, in version order, and the request keys of its streams before that version, the latest first (earlier).
How an append ended. Every expected result is a value; only a defect is an exception.
The request key of one committed stream: the aggregate's version it committed, its requestId and its commandType, the command's fingerprint. The kernel builds an aggregate's recent requests from these.
The events one command produced, committed together by one append: the unit of fact (documentation/designs/08-data-protocols.md §4).
A committed event stream at its position in the log, with the transport section appended with it, if any. Only EventLog.tail and EventLog.readEntries return entries: the transport serves the subscriptions and signals that read the log, never the domain.
A position in the log: a partition and a sequence within it, in the order commits became visible.
Assigns an aggregate to a partition. The hash is part of the storage format: it is fixed across JVMs, processes and versions (64-bit over context.aggregate/tenant/id, never String.hashCode), so every node and every release agrees, and changing it means repartitioning the log.
Where a log partition comes from: the metadata format 1 reserves for the online splits of 10.x, so that they are an additive change. Each backend stores it with the partition's counter, writes ROOT for every partition a log is created with, and reads it back with EventLog.lineage; nothing acts on it yet.
What SnapshotTailReader.readWithSnapshot reads of one aggregate: its snapshot, null when it has none, and the tail after it, every stream of the aggregate when there is no snapshot.
An optional capability of a store that holds a context's log and its snapshots in one database: reading an aggregate's snapshot and the tail after it in one round trip (me.ahoo.wow.spi.store.Store.snapshotTails). The runtime gives it to the kernel for the aggregate types whose log and primary snapshots are on that one store; the others are read the way every log can: the snapshot, then the tail (readSnapshotTailApart).
How often a tail polls: every interval while it finds entries, backing off when it finds none, each empty poll doubling the wait up to maxInterval. A commit this log made in the partition wakes its tails at once, so an idle partition's next entry is not held up by the backoff on the node that appends it; entries other nodes append are read within maxInterval.
How often the tails of a polled log poll: every interval while they find entries, backing off up to maxInterval while they find none (wow.log.poll-interval, wow.log.max-poll-interval).
What an append carries for delivery, not as fact (§4): domain code and queries never see it, and a migration or a replay drops it. The runtime appends it encoded (TransportCodec), and a backend stores those bytes apart from the stream (its own column or field), never reading them.
The one form of a Transport: the runtime encodes it once, the log stores the bytes as they are, and the Kafka envelope and the cluster channel embed the same JSON object.
How a backend reads an aggregate's streams by version (EventLog.read, EventLog.readEntries): a page of at most SIZE streams at a time, by the version key, each page emitted before the next is read. A read then holds one page, whatever the aggregate's history: a replay from version 1 of an aggregate of hundreds of thousands of streams, which held them all, holds 512. Each page is a call of its own, so a long read holds no connection between pages; a read within one page is one call, as before.
Functions
ref's snapshot in snapshots and the tail after it, read apart: SnapshotStore.load, then EventLog.readTail from the snapshot's version, or every stream of ref (a replay) and no earlier keys when there is no snapshot.
Checks what EventLog.appendAll takes of one aggregate: its streams in consecutive versions, in order. A backend that commits a group in one write relies on it to commit them as a prefix.