Package-level declarations

Types

Link copied to clipboard

A state read the client got wrong: a parameter it cannot read or that is out of range, or a state too far from the snapshot to replay. It is a query's invalid request with one violation naming the parameter (name) and the rule (code, one of me.ahoo.wow.api.query.QueryErrorCodes).

Link copied to clipboard
class SnapshotPolicyGateway(val aggregateType: AggregateType, schemaProvider: QueryModelSchemaProvider, policies: List<QueryPolicy>, val entryPolicy: QueryEntryPolicy = QueryEntryPolicy.DEFAULT) : QueryGateway

The snapshot query policies of an aggregate type no backend serves the snapshot queries of (@AggregateRoot(snapshot = false), snapshots in memory without wow.query.memory.enabled, an application's own stores): admitRecord admits a state as a me.ahoo.wow.query.DefaultQueryGateway of its snapshots would, under policies (the caller scope, the application's) against schemaProvider's snapshot schema (me.ahoo.wow.query.schema.QuerySchemaCatalog.policyProvider), so StateVisibility hides from a state read and the events model what those policies would hide from a snapshot query. It answers no query: every query fails, as its snapshots are not queried, and no route serves it.

Link copied to clipboard

A state read that finds nothing the caller may see: no such state, or one the caller may not see. Every case is answered alike, as wow.aggregate.not-found, so a caller cannot tell a state it may not see from one that does not exist; only the audit of the read learns the reason (its error code reads wow.aggregate.not-found:<reason>).

Link copied to clipboard

What a state point read asks for, as its observers and its audit see it: the shape of the read, never the id, the version or the time it names. queryType is what its observers are told.

Link copied to clipboard

Whether a caller sees one aggregate's state as the snapshot queries of its type show it: the state, as the snapshot-shaped record a query reads, admitted by QueryGateway.admitRecord of the type's snapshot query gateway, so the caller scope and the access policies hide from a state read by id, a version and a trace the rows they hide from a query. A type without a snapshot query gateway has no policies to apply, and every state of it is visible.