Package-level declarations

Types

Link copied to clipboard

Generates the id of a new aggregate of a type: the id admission gives a creating command that names none, the target of a transformed command left without one, and Ids.next of a type in domain code. One generator may serve every type or one type; a host selects one per type (AggregateIdGenerator.of).

Link copied to clipboard

Generators a host finds by a name no generator bean has, such as CosId's by its generators' names: wow.aggregates.[<context>.<aggregate>].id-generator names one of these when it names no AggregateIdGenerator.

Link copied to clipboard

Generates the message-level ids of a node: command ids, the request id of a request that names none, wait ids, and Ids.next of domain code. UUIDv7 by default, or the application's own; wow-cosid gives aggregate ids alone (AggregateIdGenerator), never these, since request ids from several services meet in one context's idempotency key and a CosId id is unique only within its namespace.

Link copied to clipboard
class IdGenerators @InternalWowApi constructor(val global: GlobalIdGenerator = GlobalIdGenerator.UUID_V7, val aggregates: AggregateIdGenerator = AggregateIdGenerator.UUID_V7) : Ids

A node's two generators, the Ids its decide functions and sagas take.