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 · NOTEBOOK TO PRODUCTION

Dakera vs ChromaDB: from notebook to production memory

Chroma is the fastest way to a working vector store, and it is open source under Apache 2.0. Many agent projects start there. This page follows the path from that prototype to a production memory service, and shows where Dakera takes over.

Reviewed October 2026

The journey

The prototype stage is where Chroma is at its best. The questions in the middle column tend to arrive with the first real deployment, and the right column is how Dakera answers them.

1 · Prototype
Chroma shines

Nothing to run, nothing to configure.

  • pip install chromadbAn in-memory client and a few lines to add and query.
  • Open sourceApache 2.0, with Python, JavaScript and Rust clients.
  • Flexible searchDense, sparse and hybrid vectors, plus full-text and regex.
2 · Production asks
What reviewers will want

The questions that arrive once real users and real data do.

  • Who can read what?Per-agent isolation and scoped keys.
  • How much can one tenant store?Enforced quotas.
  • Is it encrypted? Can we restore it?Encryption at rest and backups.
  • What if a node dies?High availability.
  • Can we see it running?Probes, metrics and a dashboard.
3 · Dakera
Built in

One binary with the memory layer included.

  • Namespaces and scoped keysKeys pinned to a namespace; sessions and agents.
  • QuotasNamespace quotas enforced with a 413.
  • AES-256-GCM and backupsRecord-bound keys, per-namespace rotation, encrypted and compressed backups.
  • Multi-node HAReplicated writes; no node is the only copy.
  • Observability/health/ready, Prometheus alerts, Grafana and the Dashboard.
88.2%
LoCoMo Recall@20, 1,536 questions: does retrieval surface the answer. Method
100+
languages in one embedding space (bge-m3), 18 with full-text stemming
0.65 GB
container memory after reranking, measured on v0.12.0
0
LLM calls or API keys in the memory path

The same first step

The first call looks alike. The difference is what sits behind it: in Dakera a stored memory is embedded, entity-extracted and indexed for both vector and keyword search by the server, and recall is reranked with a cross-encoder.

Chroma
import chromadb

client = chromadb.Client()
col = client.create_collection("memories")
col.add(
    ids=["m1"],
    documents=["Prefers dark mode"],
)
r = col.query(
    query_texts=["UI preferences"],
    n_results=5,
)
Dakera
from dakera import DakeraClient

client = DakeraClient(
    base_url=URL, api_key=KEY)
client.store_memory(
    agent_id="agent-1",
    content="Prefers dark mode",
)
r = client.recall(
    agent_id="agent-1",
    query="UI preferences",
    top_k=5,
)

Chroma snippet from its getting-started guide. Dakera also has TypeScript, Go and Rust SDKs and a REST API.

Multilingual and multimodal without wiring

Chroma accepts any embedding function and can index images and audio alongside text, so the model choice is yours to make and operate. In Dakera v0.12.0 the same capabilities are server features you switch on:

  • Multilingual: bge-m3 embeddings, stemming in 18 languages plus CJK bigrams, and dates and query routing in 7 languages, with a per-request lang. See Multilingual search.
  • Audio: on-device Whisper turns a WAV recording into a memory; multilingual whisper-base is the default and detects the language itself.
  • Document pages: visual recall finds a page image from the text of a question, using late interaction. See Multimodal memory.
  • Richer records: one indexed vector plus named dense, token or patch representations (f32, f16, i8), preserved through snapshots, export and replication.

Side by side

ChromaDakera
DeploymentIn-memory, local, client-server, or Chroma Cloud (managed, serverless; BYOC and single-tenant on Enterprise)Self-hosted binary or container; models baked into the image, ready about 4.4 s after start
SearchDense, sparse and hybrid vector search; full-text and regex; metadata filtersHNSW plus BM25 with RRF fusion, then a bge-reranker-v2-m3 cross-encoder; RaBitQ and late-interaction modes
Memory semanticsCollections of recordsAgents, sessions, 6 decay curves, deduplication, consolidation, and a knowledge graph with 5 edge types
Agent toolingOfficial chroma-mcp serverMCP server with 14 core tools (100+ via profiles); a Dashboard with a Recall lab; integrations for LangChain, LlamaIndex, CrewAI and more
ObservabilityOpenTelemetry hooks; Chroma Cloud is SOC 2 Type II certifiedHealth probes, Prometheus alert rules and a Grafana dashboard; every request audited
PricingSelf-hosting is free. Cloud: Starter $0 plus usage, Team $250/mo plus usage, Enterprise customSelf-hosted with no usage fees; Dakera Cloud is coming
LicenceApache 2.0SDKs, CLI and MCP server are MIT; the server binary is proprietary

When to choose each

Choose Chroma if

  • You are prototyping or building a RAG pipeline and want the quickest start in Python.
  • You want the whole stack under Apache 2.0, including the server.
  • You want to pick your own embedding functions, or use hybrid and regex search directly.
  • You want Chroma Cloud to run it for you, with its SOC 2 Type II certification.

Choose Dakera if

  • Your agents need memory behaviour, such as decay, sessions and a graph, rather than only storage.
  • You are taking a prototype to production on your own infrastructure.
  • You need multilingual, audio or document-page recall without assembling models yourself.
  • You want auth, quotas, encryption, backups and rollback as built-in commands.

Prefer managed? Dakera Cloud is coming. Join the waitlist.

Frequently asked questions

When should I move from Chroma to Dakera?

When your agents need more than similarity search: per-agent memory, decay, sessions, graph relations, or production controls such as scoped keys, quotas and encryption at rest. Chroma remains a good fit for simple RAG.

How do I migrate a Chroma collection?

Export documents and metadata with collection.get(include=["documents", "metadatas"]) and store them through the REST API or SDK. Dakera embeds on-device, so embeddings do not need to be exported.

Is Dakera open source like Chroma?

The SDKs, CLI and MCP server are MIT. The server binary is proprietary and self-hosted with no usage fees. Chroma is Apache 2.0 throughout.

Can Dakera run in a notebook?

Dakera runs as a server, not inside your Python process. One docker run starts it, and the Python SDK connects over REST.

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 →