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
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.
Two commands, side by side
# Milvus Standalone (embedded etcd)
bash standalone_embed.sh start
# the API listens on 19530,
# the web UI on 9091docker 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.3Milvus: 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.
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.
Where Milvus leads, and where they meet
| Milvus | Dakera | |
|---|---|---|
| Scale | Lite for a few million vectors, Standalone to 100 million, Distributed from 100 million to tens of billions | Single node, or multi-node high availability with replicated writes |
| Indexes | HNSW, IVF, FLAT, SCANN, DiskANN, GPU acceleration | HNSW, with an opt-in RaBitQ mode |
| Hybrid and multi-vector | Up to 10 vector fields per collection, dense and sparse BM25, RRF and weighted rerankers; EmbList multi-vector in 3.0 | BM25 + HNSW with RRF, then a cross-encoder; multi-vector records and late interaction (opt-in, v0.12.0) |
| Agent memory layer | An official MCP server for search and collection management | Extraction, sessions and agents, decay, consolidation, knowledge graph, 14 core MCP tools |
| Multilingual and media | Bring your own embedding model | bge-m3 across 100+ languages; attachments, on-device speech to text, visual recall over pages |
| Operations | Point-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
Can Dakera replace Milvus for large-scale search?
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.
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 →