vantage

A lightweight, non-JVM Elasticsearch alternative — observability, vector/RAG and joinable data on one engine, object-storage-native with stateless compute.

One engine for logs, traces, vectors and the relational data beside them — queried with VantageQL, a pipeline of stages you read left to right.

The same search, before and after

A saved Elasticsearch search and the VantageQL it becomes — the same time window, the same filters, the same full-text match and the same grouping, read top to bottom instead of nested inside out.

The daily logs-checkout-* indices become a single namespace: Vantage time-buckets its own shards, so there is no rollover to schedule.

Elasticsearch Query DSL
json
Press ⌘C to copy
{
  "query": {
    "bool": {
      "filter": [
        { "range": { "@timestamp": { "gte": "now-1h", "lte": "now" } } },
        { "term": { "service.name": "checkout" } }
      ],
      "must": [
        { "match": { "message": "connection refused" } }
      ],
      "must_not": [
        { "term": { "severity": "debug" } }
      ]
    }
  },
  "aggs": {
    "by_host": {
      "terms": { "field": "host.name", "size": 10 }
    }
  },
  "size": 0
}
Translated
VantageQL equivalent
vantageql
Press ⌘C to copy
from "logs-checkout"
| range(-1h, now)
| where service.name == "checkout" and severity != "debug"
| search "connection refused"
| stats count() as events by host.name
| sort events desc
| limit 10

Why the difference is structural

No feature gating on the data platform
Vector and RAG search, AI and MCP tooling, SSO and RBAC, disaster recovery — every platform capability is on every plan. Pricing scales with usage: ingest volume, retention, query compute.
No JVM
A Go binary with a cache-only memory model, so compute is sized to the working set a query actually touches rather than to a heap on top of it.
Object-storage-native
Durability lives in object storage from the first byte and compute is stateless, so storage sized to all of your data and compute sized to your queries scale — and cost — independently.
Real joins
Broadcast and shuffle joins across collections in one query, so the searchable side of an application does not need a second database and a CDC pipeline kept in step beside it.