Package-level declarations

Types

Link copied to clipboard
class HttpQueries @InternalWowApi constructor(snapshots: Collection<QueryGateway> = emptyList(), events: Collection<QueryGateway> = emptyList(), val defaultListSize: Int = DEFAULT_LIST_SIZE, val datasets: DatasetQueryGateways = DatasetQueryGateways.NONE, val datasetVisibility: DatasetVisibility = DatasetVisibility.DEFAULT, val snapshotStatus: SnapshotStatus = SnapshotStatus.NONE, policies: Collection<QueryGateway> = emptyList(), val reads: ReadFacade? = null, val streams: QueryStreams = QueryStreams(), val crossTenant: Boolean = false, val access: AccessPolicies = AccessPolicies.NONE)

The query models the public routes serve, by aggregate type: the snapshots of each aggregate a snapshot query backend serves, and the events of each aggregate an events backend serves, every one a QueryGateway on the one engine. A model of the Manifest without one here has no route: a request for it is the context's 404.

Link copied to clipboard
class QueryStreams @InternalWowApi constructor(val chunkSize: Int = QueryGateway.DEFAULT_STREAM_CHUNK_SIZE, val maxHold: Duration = DEFAULT_MAX_HOLD)

How the public port streams a list as server-sent events: keyset chunks of chunkSize records, each record's event with the cursor token of its position as its id, resumed after the position a request's Last-Event-ID names. A stream is bounded by time and bulkhead permits, not rows: after maxHold (Duration.ZERO: no bound) it ends with an end event {"reason":"hold-expired","resumable":true}, and the client resumes it. close ends every open stream with node-stopping and refuses new ones (wow.node.closing), so a node that stops does not wait for its streams.