Package-level declarations
Types
The failure ledger of one service (documentation/designs/04-subscriptions.md §2).
subscription of service parks aggregate, as its ledger holds it now (FailureLedger's entry with the retry spec it is retried by); the entry's command topic is context's, the context of the subscription.
An operator's request on a parked entry, left in the ledger by a node that does not own the entry's partition: the owner takes it (ParkedAmendment.TakeRequest) and runs it.
subscription of service no longer parks aggregate, as of resolvedAt (epoch milliseconds): the parking that failed at failedAt (null when the service did not know it) came to outcome: RETRIED (handled again), SKIPPED, RESOLVED (gone from the ledger, by an automatic retry or another node's action) or NOT_PARKED (an operator's action found nothing parked).
The retry spec a parked entry is retried by: at most maxRetries automatic retries, the first initialBackoff after the failure, each claiming the entry for claimTtl (durations); applied when an operator applied it, rather than the subscription's.
One parked aggregate: subscription stopped handling ref, in its source's partition, at its stream fromVersion, at failedAt (epoch milliseconds), because of reason. The owner of partition retries it.
A change of a parked entry's retry state (FailureLedger.amend), or, for Restate alone, of why it is parked and its retry state at once.
How a parked entry is retried over the long horizon (9.x RetrySpec): at most maxRetries automatic retries, the first initialBackoff after the failure and each next one twice as long after the previous one started; claimTtl is how long a retry's claim on the entry holds before another retry may start, such as on the partition's next owner: it cancels nothing, the retry runs on. A maxRetries of 0 turns automatic retries off.
What an operator marked a parked entry (9.x RecoverableType); only UNRECOVERABLE stops its automatic retries.
Functions
This entry with amendment applied at the next revision, or null when the amendment names a revision read that the entry is no longer at: the reference semantics of FailureLedger.amend, for a backend that changes the entry in memory. Every amendment but a ParkedAmendment.Schedule and a ParkedAmendment.TakeRequest clears ParkedAggregate.nextAttemptAt, so the owner looks at the entry again on its next scan.
Whether this entry is due at now in one of partitions (FailureLedger.due): the reference semantics, for a backend that filters in memory.
This entry where entry parks the aggregate (its partition, from version and position) and why (its reason and failure time), with this entry's retry state, at the next revision and no longer scheduled: the reference semantics of a FailureLedger.repark, and of a FailureLedger.park that replaces an entry.