mxp_ prefix.
Each is created lazily — it appears the first time a matching event occurs, not at namespace setup.
You can filter, retrieve, cluster, and export them with the same API you use on any other collection.
The _ and mxp_ prefixes are reserved. Creating a collection under either prefix fails:
What is writing today
Lazy creation means an absent collection is usually just an event you have not triggered. For some of these it means something else: nothing writes them yet.Two are named differently on namespaces that predate the rename. If you have existing data and the documented name returns nothing, look under the old one.
There is no alias, so the two names hold separate data.
mxp_retriever_queries and mxp_retriever_executions were routed to these names recently. Until the change reaches your namespace, that data is in the legacy _signals collection.Retriever signal collections
These four collections record what your retrievers do. They back learned fusion and are the input to evaluations.mxp_retriever_interactions
Stores every interaction a user reports on a search result: clicks, dwells, bookmarks, downloads.
What you can do with it:
- Feed the Thompson-sampling bandit to shift retriever weights toward features your users actually engage with. The bandit reads this collection directly.
- Filter by
interaction_typeto measure click-through rate per retriever or per feature. - Export to a reranker training set: cluster by
session_id, then label byinteraction_type.
This is the primary input to relevance tuning. A namespace with no interaction data
falls back to equal-weight fusion across retriever stages.
mxp_retriever_queries
Stores every query submitted to your retrievers, with the query embedding.
What you can do with it:
- Cluster by query embedding to discover the most common search intents in your namespace.
- Filter on
results_count = 0to find queries that return nothing — then decide whether to expand your extractor coverage or tune your retriever stages. - Join with
mxp_retriever_executionsonexecution_idto correlate query shape with latency.
mxp_retriever_executions
Stores one document per retriever run, with status, latency, result count, and execution mode.
What you can do with it:
- Monitor retriever health: filter on
status = degradedorstatus = timeoutto surface failures without reading server logs. - Track latency over time: retrieve by
retriever_idand aggregateduration_mswith a rollup stage. - Alert on spikes: wire an alert against this collection with a
duration_msthreshold.
mxp_retriever_rollups
Stores pre-aggregated health windows per retriever and per namespace.
What you can do with it:
- Build dashboards without running aggregation queries on the raw execution log.
- Use
scope = retrieverfor per-retriever panels; usescope = namespacefor namespace-wide health. - Compare
window_start_tsranges to detect degradation trends across deployments.
Evaluation and annotation collections
mxp_retriever_evaluations
Stores the result of each evaluation run: nDCG, precision, recall, and status.
What you can do with it:
- Track retriever quality over time after tuning, configuration changes, or new extractors.
- Compare
evaluation_idacross runs on the samedataset_idto confirm an improvement is real. - Fail a CI gate: query this collection after each deploy and assert nDCG did not drop.
mxp_document_annotations
Stores every human label applied to a document, with the annotator and target document.
What you can do with it:
- Use as ground truth for supervised relevance tuning: the evaluation pipeline reads this collection to score retriever output against your labels.
- Audit annotation coverage: filter by
retriever_idto see which results have been rated. - Train a reranker: export labels keyed on
target_document_idas positive or negative signal.
Platform event collections
mxp_platform_events
Stores lifecycle events for resources in your namespace: buckets, collections, extractors created
or deleted.
What you can do with it:
- Trigger outbound webhooks on resource changes: any event written here fires your configured webhook URL automatically.
- Audit your namespace history: query by
event_type = collection_createdto see when pipelines were added. - Detect unexpected deletes: alert when
event_type = bucket_deletedappears.
mxp_change_events
Stores an ordered, monotonically sequenced log of all resource changes in your namespace.
What you can do with it:
- Replay your namespace history: read from a known
seqto catch up on what changed while a downstream system was offline. - Build integrations: poll for
seq > last_seento drive a sync to an external system. - Audit in sequence: unlike
mxp_platform_events, this collection guarantees ordering byseq.
mxp_platform_events and mxp_change_events cover the same resource lifecycle, but differently.
mxp_platform_events fires webhooks and is suitable for alerting. mxp_change_events is ordered
and suitable for replay and synchronization.Compute and infrastructure collections
mxp_compute_utilization
Stores per-batch compute cost: documents processed, duration, and throughput.
What you can do with it:
- Get an email alert when throughput drops below 0.5 docs/sec or a batch runs longer than 1 hour. Mixpeek sends this automatically for anomalous batches.
- Filter by
measured_collection_idto compare ingestion cost across your collections. - Identify expensive extractors: join with
mxp_batch_failuresonbatch_idto see whether high-cost batches also have high failure rates.
mxp_infra_metrics
Stores infrastructure metric snapshots: CPU, memory, pod count, queue depth.
What you can do with it:
- Trigger scale-up alerts: Mixpeek fires an outbound webhook when
engine_pod_countdrops below your configured floor (INFRA_MIN_ENGINE_PODS). - Retrieve historical metrics to understand whether a slow batch correlated with resource pressure.
- Filter by
source = prometheusorsource = rayto separate infrastructure metrics from local-dev estimates.
mxp_batch_failures
Stores one document per object that failed extraction, with error type, extractor name, and retry
eligibility.
What you can do with it:
- Find which objects failed in a batch: filter by
batch_idand readerror_typeanderror_messageto understand the cause without reading server logs. - Identify systemic failures: filter by
collection_idacross batches to find extractors that fail consistently on a particular collection. - Drive targeted retries: filter on
can_retry = trueandretry_count < 3to get the set worth re-submitting.
Operational collections
mxp_webhook_deliveries
Stores a delivery record for every webhook event your namespace generated: payload, status,
retry count, and last error.
What you can do with it:
- Verify delivery: filter by
event_idto confirm a specific webhook fired and succeeded. - Debug failures: filter on
status = failedand readlast_errorto see what the endpoint returned. - Monitor retry depth: filter on
retry_count >= 3to find events stuck in the retry ladder before they reach the dead-letter queue.
mxp_healing_events
Stores every auto-repair action the platform took on your namespace: stalled job cancellations,
circuit breaker trips, batch repairs.
What you can do with it:
- Audit platform interventions: query by
affected_resourceto see what the platform touched and why. - Correlate with batch failures: join on
batch_idto see whether a batch failure was preceded by a healing action. - Monitor recurrence: if
source = circuit_breakerappears repeatedly for the same resource, that is a signal to investigate the upstream service.
mxp_alert_executions
Stores one document per alert evaluation: which alert fired, the condition that was met, and
the severity.
What you can do with it:
- Review alert history: filter by
alert_idto see every time an alert fired, without reading the alert configuration. - Suppress noise: query for repeated
alert_idoccurrences in a short window to identify alerts that need threshold adjustment. - Build alert analytics: cluster by
severityandretriever_idto find which retrievers produce the most alerts.
Reference table
Query any of these collections with
POST /v1/collections/{collection_name}/documents/list,
filtering on signal_type and any payload field. All standard retriever stages work against them.
universal_extractor
Provisioned at namespace creation, alongside the default namespace, an uploads bucket, and a
search retriever. When you upload files from Studio, Mixpeek runs the universal extractor over
them: multimodal embeddings at 3072 dimensions plus generated descriptions.
This collection carries no system prefix. You can rename, reconfigure, or delete it like any
collection you created yourself.
