NewRelease 0.12.3 is out: Engine v0.12.3, Dashboard 0.5.2, Helm 0.12.3, the four SDKs, CLI 0.8.2 and MCP 0.12.3Release 0.12.3 is outSee what's new →
COMPARE · VECTOR DB

Dakera vs Milvus: built for billions of vectors, or built for agent memory?

Milvus is an Apache 2.0 vector database from the LF AI & Data Foundation, designed to scale from a laptop library to a Kubernetes cluster holding tens of billions of vectors. Dakera is a memory engine for agents. The useful question is how big your problem is: pick the stack that matches it, and no larger.

Reviewed October 2026

88.2%
LoCoMo Recall@20, 1,536 questions: does retrieval surface the answer. Method
0.65 GB
container memory after reranking (measured, v0.12.0; was 4.98 GB)
~101 MB
server binary; the Docker image is 783 MB with models included
4.4 s
to ready after container start, with no download (v0.12.0)

Count the parts you run

Milvus offers three modes. Each Milvus instance relies on a message queue, object storage and a metadata store, which are Woodpecker, MinIO and etcd by default. The modes differ in how many of those you operate yourself.

Milvus Distributedtens of billions of vectors
Proxystateless access layer
Coordinator
Streaming node
Query node
Data node
etcdmetadata
Object storageMinIO or S3-compatible
Woodpeckerwrite-ahead log
Milvus Standaloneup to 100 million vectors
Milvus serverone image, embedded etcd, Woodpecker
MinIOobject storage, built in by default
Dakera1 binary, 1 container
Dakeravectors, full-text, models, graph, sessions
Your infrastructure
Milvus components as listed in its architecture and install documentation. Distributed runs on Kubernetes. Milvus Lite, a Python library for prototypes, is not shown.

Two commands, side by side

Milvus Standalone
# Milvus Standalone (embedded etcd)
bash standalone_embed.sh start

# the API listens on 19530,
# the web UI on 9091
Dakera
docker run -d --name dakera \
  -p 3000:3000 \
  -e DAKERA_ROOT_API_KEY=my-dev-key \
  -e DAKERA_STORAGE=filesystem \
  -v dakera-data:/data \
  -v dakera-models:/app/models \
  ghcr.io/dakera-ai/dakera:0.12.3

Milvus: standalone_embed.sh from the Milvus install guide. Dakera: the Quickstart command; models ship in the image, so it starts with no network.

Footprint

Milvus is sized for large collections, and its install guide lists the hardware to plan for. Dakera's v0.12.0 work went the other way for agent memory: a small working set on ordinary CPU hardware. These are Dakera's own before-and-after measurements.

Dakera v0.11.108container memory after reranked recall
4.98 GB
Dakera v0.12.0same test, same container
0.65 GB
HNSW per vector, v0.11.1081024 dimensions
4.81 KB
HNSW per vector, v0.12.0recall@10 unchanged at 0.998
2.76 KB

Measured in a 4 vCPU / 8 GiB container with the default reranker, and on BEIR Quora (50,000 vectors) for the per-vector figure. Stored memories add to the working set as they grow.

  • Memory per vector: v0.12.0 cut HNSW memory per 1024-dimension vector by 43% (4.81 KB to 2.76 KB) with recall@10 unchanged at 0.998.
  • Speed: vector search is 0.87 ms p50 and 1.17 ms p95 on 50,000 vectors, CPU only. Reranked recall is about 2x faster on the same CPU, and ingest is 2.7x faster.
Right-sizing. If your corpus is tens of millions of vectors or fewer, one process may be all the machinery you need. Dakera's high-availability cluster replicates every write to all nodes, and each node holds a full copy. That adds availability, not capacity: when the data outgrows one machine, a sharded engine such as Milvus Distributed is the right tool.

Where Milvus leads, and where they meet

MilvusDakera
ScaleLite for a few million vectors, Standalone to 100 million, Distributed from 100 million to tens of billionsSingle node, or multi-node high availability with replicated writes
IndexesHNSW, IVF, FLAT, SCANN, DiskANN, GPU accelerationHNSW, with an opt-in RaBitQ mode
Hybrid and multi-vectorUp to 10 vector fields per collection, dense and sparse BM25, RRF and weighted rerankers; EmbList multi-vector in 3.0BM25 + HNSW with RRF, then a cross-encoder; multi-vector records and late interaction (opt-in, v0.12.0)
Agent memory layerAn official MCP server for search and collection managementExtraction, sessions and agents, decay, consolidation, knowledge graph, 14 core MCP tools
Multilingual and mediaBring your own embedding modelbge-m3 across 100+ languages; attachments, on-device speech to text, visual recall over pages
OperationsPoint-in-time snapshots and online schema evolution in 3.0/health/ready, dakera --check-config, Prometheus alert rules and a Grafana dashboard, dakera downgrade

When to choose Milvus, and when Dakera

Choose Milvus if

  • You expect hundreds of millions to billions of vectors, or need a disaggregated, sharded cluster.
  • You want GPU-accelerated indexes or a choice of index families.
  • You need to query lakehouse data in place, or evolve schemas while serving, as Milvus 3.0 allows.
  • You have a platform team that runs Kubernetes and wants a Foundation-governed Apache 2.0 project.

Choose Dakera if

  • Your workload is agent memory, not a billion-vector corpus.
  • You want one container with models included, not a set of services to operate.
  • You want extraction, decay, a knowledge graph and a dashboard without writing them.
  • You need multilingual or multimodal memory on your own hardware.

Zilliz Cloud has a free cluster with 5 GB of storage and up to 5 collections. Prefer managed? Dakera Cloud is coming. Join the waitlist.

Frequently asked questions

Not for sharded, billion-vector workloads. Dakera is sized for agent memory on one node or a replicated high-availability cluster. Milvus Distributed is built for the larger case.

Does Milvus Standalone need several services?

Standalone packs its components into a single Docker image, with embedded etcd and Woodpecker; MinIO is built in by default. Distributed mode adds separate proxy, coordinator and worker nodes on Kubernetes.

What hardware does Dakera need?

The default models use about 0.65 GB of container memory after reranked recalls, measured in a 4 vCPU / 8 GiB container on v0.12.0. The figures were measured CPU only.

How are the LoCoMo numbers used here?

Dakera reports Recall@20: whether the answer is among the top 20 retrieved memories, with no LLM in the retrieval path. It measures memory retrieval, not vector-database scale.

Self-hosted is free

Run Dakera on your own infrastructure.

One binary with its models baked in and no per-call fees. Start it with one Docker command and see it for yourself.

Prefer managed hosting? Join the Dakera Cloud waitlist →