- Every stream has a profile. If no profile is declared when the stream is
created, it is treated as the built-in
genericprofile and profile metadata is managed via/_profile. state-protocolis implemented as a real profile, so live/touch streams are configured through/_profileinstead of the schema registry.evlogis implemented as a real profile, so request-log streams normalize JSON writes into canonical wide events with profile-owned redaction and routing-key defaults.- Installing
evlogalso auto-installs the canonical schema version1and defaultsearchregistry, so_searchandfilter=work without a separate manual schema setup step. metricsis implemented as a real profile, so metrics streams normalize JSON writes into canonical interval summaries with profile-owned schema/search and rollup installation.- The internal
__stream_metrics__stream is auto-created with themetricsprofile and is immediately queryable through_searchand_aggregate. - The public profile API uses a single
profilefield in requests and responses. - State-protocol touch processing uses profile-aligned
processorandprocessed_throughnaming across runtime metadata, metrics, and packaging.
- Schemas declare searchable fields under top-level
search, including stable field IDs, per-version bindings, aliases, and capabilities such asexact,prefix,column,exists, andsortable. - Full mode builds five search/indexing layers from that schema:
- the internal exact-match secondary index family
.colper-segment companions for typed equality/range.ftsper-segment companions for keyword exact/prefix and text search.aggper-segment companions for schema-owned rollups.mblkper-segment companions for metrics-profile aggregate serving
POST /v1/stream/{name}/_searchandGET /v1/stream/{name}/_search?q=...are implemented for fielded exact/prefix/range/text queries with search-after pagination.POST /v1/stream/{name}/_aggregateis implemented for schema-owned time-window rollups with aligned-window.aggusage,.mblkmetrics fallback, and raw-scan fallback for partial edges and uncovered ranges.- The main
GET /v1/stream/{name}path supportsfilter=for schemasearch.fieldsand still covers the local unsealed tail with a bounded 100 MB scan cap per response. - Published exact,
.col,.fts,.agg, and.mblkstate survives manifest publication and bootstrap-from-R2 recovery. GET /v1/stream/{name}/_index_statusexposes per-stream segment, manifest, routing-index, exact-index, and search-family progress for UIs and diagnostics.GET /v1/stream/{name}/_detailscombines the current stream summary, full profile resource, full schema registry, nested index status, andstream.total_size_bytesin one call.