Skip to main content

The fast, tiny
time-series database.

Anzaran stores anything with a timestamp — server metrics, sensor readings, events — and answers questions about it in milliseconds, even with millions of series and the whole team on dashboards at once. One small binary that runs on a $7-a-month VM.

Fastest on every query shape — 8 of 8 — vs QuestDB 9.4.3 and VictoriaMetrics 1.136.0 at one million series, measured Aug 2026 — see the proof.

terminal — anzaran

Illustrative session — the commands and API shapes are real; measured performance lives in the benchmarks.

4,251 QPS
Graphs stay instant when everyone opens dashboards at once — queries per second at 8 clients on 1M series, cold p50 1.0 ms. QuestDB: 164 QPS. VictoriaMetrics: 4.
10M
Stop rationing labels — track per-container, per-user, per-device. Ten million series served under a 4 GB cap; the other two engines could not finish the workload.
0.1 ms
Ask anything of everything — a metric-wide count across ALL 1M series, answered from maintained indexes, verified exact. No pre-aggregation pipeline to build first.
0 lost
An OK is a promise — every acknowledged write is on disk before the 200. Pull the plug mid-ingest; it's there on restart, chaos-tested on every release.

Measured Aug 2026, AWS c7i.2xlarge, equal 2 CPU / 4 GB caps, vs QuestDB 9.4.3 and VictoriaMetrics 1.136.0 — full methodology ↗

[01] FEATURES

A full database in one small binary.

Everything below ships in the same binary. The query language is never paywalled — high availability is the only Pro feature.

Ask anything of your data Every tier

Familiar SQL-style queries: averages, percentiles, joins across metrics, moving averages, even forecasting — straight over raw data, no pre-aggregation pipelines to build and babysit. The full query language is free on every tier.

Cardinality isn't a tax Every tier

Label per container, per user, per device — without the explosion anxiety. Ten million series fit in a 4 GB cap, and a metric-wide question across all of them answers in under half a second. Stop designing your labels around your database's fears.

Stays up when a server dies Pro

Run three nodes. If one fails, another takes over in seconds and writes keep flowing — no manual failover, no lost data for acknowledged writes. Proven Raft consensus under the hood.

Keep years of data for pennies Every tier

Recent data stays in memory for instant queries; older data moves to S3 automatically. Long retention costs object-storage prices — about $0.023 per GB-month — not disk prices.

Never lose an acknowledged write

Anzaran saves every write to disk before it says OK. Pull the plug mid-ingest: everything that was acknowledged is still there on restart. In a cluster, OK means a majority of nodes have it. The contract is pinned by an automated ingest→restart→exact-count chaos test in the release gate.

Runs on a $7/month VM

One small binary, 31 MiB of idle memory. The smallest x86 instance your cloud sells is enough — no JVM, no warm-up, no dedicated ops person.

Locked down with one setting

Turn on authentication with a single environment variable — reader, writer, and admin roles — plus a hardened mode for production clusters.

[02] BENCHMARKS

Measured, not marketed.

Every claim above is a measurement below. Anzaran, QuestDB 9.4.3, and VictoriaMetrics 1.136.0 ran side by side on one AWS c7i.2xlarge, each capped at 2 CPUs and 4 GB RAM, ingesting the same 50 million points across one million series and answering identical randomized queries. Forty-eight cross-engine correctness checks per competitor had to pass before any latency counted — 48/48 vs both.

Per-workload latency — 1M series (cold p50 / p99, ms)

Workload Anzaran QuestDB 9.4.3 VictoriaMetrics 1.136.0
Scalar aggregate, 1 h window 0.2 / 2.2 1.2 / 5.8 3.1 / 6.6
Scalar aggregate, 6 h window 0.6 / 1.2 2.3 / 3.3 19.5 / 26.6
Scalar aggregate, 24 h window 2.1 / 2.8 2.6 / 3.9 60.9 / 83.1
GROUP BY 5m, 1 h window 0.3 / 0.3 6.4 / 55.0 2.1 / 3.3
GROUP BY 5m, 6 h window 1.1 / 1.2 81.6 / 99.0 17.9 / 19.8
GROUP BY 5m, 24 h window 3.4 / 3.7 63.2 / 148.3 70.7 / 70.7
One series of 1M, by label 0.1 / 0.5 8.8 / 48.7 1.9 / 2.9
Metric-wide aggregate over ALL 1M series 0.1 / 0.4 1.7 / 1.9 1,924.2 / 2,190.8

Anzaran is fastest on all 8 shapes — every cell, both competitors.

Throughput under concurrency — 1M series

Engine Clients QPS Cold p50 / p99 (ms)
Anzaran 1 1,690 0.3 / 3.5
Anzaran 8 4,251 1.0 / 5.4
Anzaran 32 3,154 2.0 / 17.9
QuestDB 9.4.3 1 / 8 / 32 97 / 164 / 127 2.7 → 265 p50
VictoriaMetrics 1.136.0 1 / 8 / 32 2.5 / 3.7 / 3.3 6.6 → 5,077 p50

Anzaran serves 4,251 queries per second at 8 clients — ~26× QuestDB and ~1,100× VictoriaMetrics — with cold p50 of 2 ms or less at every concurrency level. QuestDB's p50 degrades ~98× from 1 to 32 clients; VictoriaMetrics collapses to ~4 QPS with multi-second latencies at this cardinality. Anzaran deliberately admission-controls concurrent metric-wide scans (two at a time; the rest receive an immediate retryable 429 rather than queueing) — that back-pressure is included in the QPS shown.

Ingest — 1M series (zero errors, all engines)

Workload Anzaran QuestDB 9.4.3 VictoriaMetrics 1.136.0
Low cardinality, 1 stream (20M pts) 3.94M pts/s 2.26M pts/s 2.26M pts/s
1M series, 4 streams (30M pts) 870K pts/s 925K pts/s 848K pts/s

Ack semantics differ, and it matters: Anzaran's acknowledgment is durable — every acked point is fsync'd to the write-ahead log before the 200. QuestDB acks with relaxed commit lag; VictoriaMetrics acks from an in-memory buffer before any durable persistence. Anzaran posts the fastest low-cardinality ingest of the three while giving the strongest guarantee.

10 million series — where the others stop

Metric-wide count at N distinct series Anzaran
~4.5M series 0.69 s
~7.0M series 0.68 s
~9.1M series 2.45 s
~9.5M series, randomized windows 0.478 s
Sealed data (post-flush) 0.2 ms

Anzaran solo — at 10M series under the same 4 GB cap, neither competitor completes the workload at all (a measured finding, not a jab: their ingest never finished inside the harness limit). Counts are answered from maintained indexes, verified exact in-run by 23 closed-form count oracles and 6 value-sum oracles at 10M; the 0.2 ms sealed-data row is served entirely from Anzaran's sorted-runs index and is labeled separately for exactly that reason. Acked writes survive restarts — the contract is pinned by an automated ingest→restart→exact-count chaos test in the release gate.

All tables: measured Aug 2026 on AWS c7i.2xlarge (8 vCPU / 16 GB), each engine cgroup-capped at 2 CPU / 4 GB, official competitor images, identical line-protocol data, randomized cache-defeating query windows. Honest caveats: one shared machine per run; comparisons are relative; single-digit-ms deltas near the HTTP floor are transport, not engine.

[03] LOW COST

Small footprint, small bill.

The cheapest infrastructure is the infrastructure you don't need. Anzaran's resource profile is designed to keep your cloud bill boring.

Runs on the smallest instance

Anzaran idles at 31 MiB — QuestDB idles at 526 MiB. It fits on the smallest general-purpose VM, and under real load it stays lean: 1.63 GiB peak while serving one million series (QuestDB 1.04 GiB, VictoriaMetrics 1.27 GiB) — and it is the only engine of the three that completes the ten-million-series workload inside a 4 GB cap at all.

Cold data at object-storage prices

Historical data tiers down to S3-compatible storage automatically. You pay object-storage rates for retention instead of keeping years of metrics on provisioned block disks.

Public pricing, no sales calls

The prices below are the prices. Free is genuinely usable in production, Pro is a number you can budget for, and nobody has to sit through a demo to see it.

What it costs to run Anzaran QuestDB 9.4.3 VictoriaMetrics 1.136.0
Idle memory 31 MiB 526 MiB 50 MiB
Peak memory serving 1M series 1.63 GiB 1.04 GiB 1.27 GiB
Completes 10M series in 4 GB yes no no
Smallest comfortable AWS instance (light workloads) t3a.micro 1 GiB — $6.86/mo t3a.medium 4 GiB — $27.45/mo t3a.micro 1 GiB — $6.86/mo

Cold data tiers to S3 object storage (~$0.023/GB-month) instead of growing block storage (~$0.08/GB-month gp3) — and S3 tiering is free on every Anzaran tier. Instance rows are illustrative x86_64 on-demand list prices, AWS us-east-1 (Anzaran targets x86_64 today; ARM builds are planned); your workload will vary.

[04] PRICING

Simple, public pricing.

Every tier runs the same binary with the full ZQL language. You pay for high availability and scale, not for features held hostage.

Free

$0
forever
  • Full single node
  • Full ZQL — JOIN, forecasting, window functions
  • S3 tiered storage
  • 1M points/day ingest
  • Community support by email
Get started

Enterprise

Custom
custom terms
  • Everything in Pro
  • Unlimited ingest
  • Custom licensing terms
Contact us

Pricing FAQ

What happens if I exceed my quota?

Ingest requests over the daily quota get an HTTP 429 with a retry_after_seconds field, and writes resume at UTC midnight. Data that was already accepted is never lost — a quota limit only pauses new writes, it never touches stored data.

Where is my data stored on the Free tier?

On your own infrastructure. The official image writes every accepted point to its write-ahead log at /data before acknowledging it — mount a persistent volume there (as in the quickstart command) so data survives container replacement. S3 tiering is included on the Free tier — point it at any S3-compatible object store and your history lives durably in your own bucket, at object-storage prices.

How do I get my license key?

Write to contact@anzaran.com and the key comes back by email. You can validate it on the license page and activate it with a single CLI command.

What support is included?

Every tier reaches the maintainers at the same address, contact@anzaran.com. We don't sell support SLAs — if you need contractual response times, talk to us about Enterprise terms.

[05] COMMUNITY

Get it, run it, talk to us.

Anzaran is one Docker command away, and the people who build it are one email away.

Email

Ask questions, report issues, and talk directly with the maintainers. Community support for every tier goes through this address.

contact@anzaran.com

Docs

From zero to a running node in about 5 minutes — the quickstart covers Docker setup, your first writes, and your first ZQL queries.

Read the quickstart

# Start a single node with a persistent data volume
$ docker run -d -p 8080:8080 -v anzaran-data:/data -e TSDB_WAL_DIR=/data ghcr.io/samisoftb/zigtsdb:latest

# Write a point (InfluxDB-style line protocol)
$ curl -X POST localhost:8080/ingest \
    -d "cpu_usage,host=web-1 value=75.5 1704067200000000000"

# Query it with ZQL
$ curl "localhost:8080/query?zql=SELECT avg(value) FROM cpu_usage"

Instant dashboards, five minutes from now.

Run it in 5 minutes See the proof