EventQueryBackendSpec

The contract of an events query backend: every events backend passes it. A backend's test extends it, stores the streams each test gives in store, and supplies its binding of an aggregate type in binding.

A record is one stream (me.ahoo.wow.query.events.EventStreamRecords.stored); the schema is compiled as the Catalog compiles it, from the test manifest (EventsQuerySchemas) and the backend's storage facts. Each test runs on its own aggregate type (a fresh context). Queries are admitted through QueryAdmission.Trusted and run through the core's query shapes, except the gateway tests, which run the whole admission and read each record as the model shows it.

The streams (streams): o1 and o2 of TENANT, o3 of OTHER_TENANT. o1 v2 commits two ItemAdded; o2 v2 one stored under its alias LineAdded; o1 v3 an OrderPaid stored at revision 1 (the Manifest's is 2, so its body paths are not filtered); o1 v4 only the retired LegacyNoted.

The cases come in families, each a parent class of this one (EventQueryFixtures lists them); this class holds every family but the per-event analytics (EventAnalyticsCases).

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Functions

Every other stream is appended carrying a transport (a wait with its origin and remaining hops, reservations, releases and a trace): the events query reads facts only, so its records, counts, pages, cursor, aggregations and expanded aggregations are what they are without it, and no record shows a field of it.