EventsQueryModelProfile

The event streams of one aggregate type: one record per stream, identified by (aggregateId, version), its events an array whose conditions are element predicates (ELEMENT_MATCH), so count counts commits and a page never splits one. Per-event analytics expand the array (AggregationQuery.elements).

  • The identity a record-id filter (ID, IDS) targets is the aggregate id, as before the unified engine; the cursor's tie-breakers are (tenantId, aggregateId, version), the stream's key in its log.

  • The default FIRST / LAST order is the commit time. A stream is never deleted: the model has no deleted field and no default scope.

  • A projection keeps or drops events as a whole: an event is read (upgraded, masked) as one value.

What one aggregate type's Manifest says about its events reaches admission here:

  • storedNames: the names each event is stored under besides its current one (its @Aliases, as stored), so a name condition inside an element scope of events matches the events the log stores under them;

  • retired: the stored names the aggregate retired, which every element scope of events excludes, so a condition never matches an event the record does not show;

  • revisions: each event's current revision; a body path of an event past revision 1 is not filtered, sorted or aggregated (see EventsQuerySchemas).

Types

Link copied to clipboard

Properties

Link copied to clipboard
open override val cursorUniqueKey: List<QueryField<*>>

The fields that identify one record across the whole model, in the order a cursor appends them as its tie-breakers: the identityField alone by default, or nothing when the model has none.

Link copied to clipboard

The element array of the events, the container storedNames and retired apply to.

Link copied to clipboard
open override val eventTimeField: QueryField<*>

When the record last changed: the default orderBy of FIRST and LAST metrics; null when there is none.

Link copied to clipboard
open override val identityField: QueryField<*>

Unique record identity: the target of id filters and the tie-breaker of every cursor; null when the model declares none, which rejects both.

Link copied to clipboard

The name field of an event, relative to eventsField.

Link copied to clipboard
open override val payloadField: QueryField<*>

Logical field that holds the user payload; schema extensions must live below it. null when the whole record is payload, as in a dataset.

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

Fields that every record of this model carries, independent of the aggregate.

Functions

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

The names name is stored under: itself and its aliases.

Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open override fun validateProjection(projection: Projection)

Rejects a projection below events: an event is read as a whole, its body upgraded to its current revision.