Package-level declarations

Types

Link copied to clipboard

Writes the commands admitted on a node to a command topic instead of executing them there: the topic router's or a peer context's. The target's intake executes them.

Link copied to clipboard

The in-process SignalSender: a signal whose origin is this node of this service goes straight to its registry; any other goes to remote, the sender to other nodes' internal signal entries (and 6.6), which drops it by default.

Link copied to clipboard

The error codes the runtime answers with, beside the kernel's rejection codes: constants of the framework's table (FrameworkErrors).

Link copied to clipboard
data class Settlement(val committed: CommandResult, val reached: List<CommandResult> = emptyList(), val outcome: CommandOutcome? = null, val cause: Throwable? = null)

What executing a command reached at once: its committed result, at its COMMITTED hop, then the later hops it reached without waiting for a subscription. The hops after them are signalled to the wait's origin. outcome is the kernel's when this node executed the command; null when another node did and replied, or when the executor did not take it.

Link copied to clipboard

Delivers a wait signal to the node a wait started on.

Link copied to clipboard

What a wait needs to know about the subscriptions its chain names, until the Manifest gives it (admission checks the chain against the Manifest).

Link copied to clipboard

What the node a wait starts on does with a hop of a context it knows no Manifest of, its own or a peer's.

Link copied to clipboard
class WaitCoordinator(executor: Executor, registry: WaitRegistry, directory: SubscriptionDirectory, signals: SignalSender, origin: Origin, val options: WaitOptions = WaitOptions(), clock: Clock = Clock.systemUTC(), waitIds: () -> String = GlobalIdGenerator.UUID_V7::next, router: CommandRouter = CommandRouter.LOCAL, executionContext: CoroutineContext = Dispatchers.Default, topicRouter: TopicRouter? = null, observer: Observer = Observer.NONE, deadlines: WaitDeadlines = WaitDeadlines.SHARDED)

Runs commands and waits for their chains (–).

Link copied to clipboard

Where a WaitCoordinator ends its waits at their deadlines, apart from their waiters: the half of its dependency on time that its clock does not cover. SHARDED, the runtime's deadline threads, unless a test holds the deadlines to pass them itself.

Link copied to clipboard
class WaitOptions @InternalWowApi constructor(val maxTimeout: Duration = DEFAULT_MAX_TIMEOUT, val maxHops: Int = DEFAULT_MAX_HOPS, val defaultTimeout: Duration = WaitPlan.DEFAULT_TIMEOUT, val unknownContexts: UnknownContexts = UnknownContexts.ALLOW, val maxRegistered: Int = DEFAULT_MAX_REGISTERED)

The tuning of waits on one node; the node itself, as signals address it, is its WaitCoordinator's origin.

Link copied to clipboard

The waits started on this node: a wait is registered before its command is executed, takes the signals of its hops as they arrive, and is removed when its caller has its answer or gives up. A signal for a wait this node does not hold (ended, timed out, or never here) is dropped. It holds at most the bound each registration names: a registration beyond it is refused.