ContextBackends

class ContextBackends @InternalWowApi constructor(val log: EventLog, val checkpoints: CheckpointStore, val leases: LeaseStore, val ledger: FailureLedger, val snapshots: SnapshotTargets? = null, val reservations: ReservationStore? = null, val timers: TimerStore? = null, val store: String = DEFAULT_STORE, val groups: List<LogGroupBackends> = emptyList(), val stores: PlacedStores = PlacedStores.NONE, val snapshotTails: SnapshotTailReaders = SnapshotTailReaders.NONE)

The stores of one bounded context on a node (a log, its partitions and leases are per context). The log's partition count is the context's. Without snapshots the context has no snapshot subscription, and its default wait is COMMITTED; without reservations its commands cannot reserve keys; without timers its commands and sagas cannot schedule commands: a schedule is committed but never sent.

Log groups: the aggregates whose log is on one store instance form a group, with its own partition sequences and aggregate tables, and the checkpoints, parked entries and timers of the subscriptions that read it in the same store. log, checkpoints, ledger and timers are the context's default group, on the store named store: every aggregate type of the context that no other group names. Each of groups is another store's, with the aggregate types it holds. Partitions and leases stay per context: every group has the context's partitions, and the owner of a partition reads it in every group. One store, no groups: one group, the whole context in it.

Fields may be added: construct it with of; the constructor, which also takes the log groups and snapshot targets the host configures, is internal to Wow.

Constructors

Link copied to clipboard
constructor(log: EventLog, checkpoints: CheckpointStore, leases: LeaseStore, ledger: FailureLedger, snapshots: SnapshotTargets? = null, reservations: ReservationStore? = null, timers: TimerStore? = null, store: String = DEFAULT_STORE, groups: List<LogGroupBackends> = emptyList(), stores: PlacedStores = PlacedStores.NONE, snapshotTails: SnapshotTailReaders = SnapshotTailReaders.NONE)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard

The context's other log groups, each on a store of its own.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The snapshots the write side and the state readers read: each type's primary target.

Link copied to clipboard
Link copied to clipboard

The context's snapshot stores: every store its aggregate types' snapshots are written to, with each type's primary one; SnapshotTargets.single for one store. None, its snapshots are not kept.

Link copied to clipboard

The one-round-trip reads of a snapshot with its tail, by aggregate type: one for each type whose log and primary snapshots are on one store that reads them together (Store.snapshotTails).

Link copied to clipboard

The store instance of the default log group, as the host names it (wow.log.store).

Link copied to clipboard

The store instances these ports were opened on, which the node creates the schemas of when it starts and probes for its health; none for backends an application opened itself. Whoever opened them closes them: the host, once the node and everything else that reads them stopped.

Link copied to clipboard

Functions

Link copied to clipboard
fun copyWith(log: EventLog = this.log, checkpoints: CheckpointStore = this.checkpoints, leases: LeaseStore = this.leases, ledger: FailureLedger = this.ledger, snapshots: SnapshotTargets? = this.snapshots, reservations: ReservationStore? = this.reservations, timers: TimerStore? = this.timers, store: String = this.store, groups: List<LogGroupBackends> = this.groups, stores: PlacedStores = this.stores, snapshotTails: SnapshotTailReaders = this.snapshotTails): ContextBackends

These ContextBackends with the given fields replaced: Wow's own copy, left out of the ABI.

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
open override fun toString(): String