Postgres + Elasticsearch + Neo4j + Pinecone + an agent-memory store + an audit ledger — in one binary. Temporal and governed by default, speaking the protocols your clients already use.
by ZySec AI · the frontier intelligence company
Teams stitch 5–6 databases and move data between them with constant ETL. Relata unifies them, plus time-travel, policy, provenance and agent memory — and it already speaks the protocols your clients target.
Whatever door data enters, it is recognized, governed and remembered in time. Reads go through the same policy lens.
No new driver, no rewrite. Each door is opt-in with one env var (RELATA_<DOOR>_ENABLE=true) and a port.
| Speak | Connect with… | Port |
|---|---|---|
| Postgres / pgvector | psql "host=127.0.0.1 port=5433 user=relata password=$TOKEN" — SQL + pgvector | 5433 |
| S3 | aws --endpoint-url http://localhost:9191 s3 cp ./f s3://acme/key (bucket = tenant) | 9191 |
| MongoDB | mongosh "mongodb://$TOKEN@127.0.0.1:27017" | 27017 |
| Redis | redis-cli -h 127.0.0.1 -p 6379 -a $TOKEN | 6379 |
| ClickHouse | INSERT INTO t FORMAT JSONEachRow over HTTP | 8123 |
| Neo4j / Bolt | cypher-shell -a bolt://127.0.0.1:7687 | 7687 |
| Arrow Flight | pyarrow.flight.connect("grpc://127.0.0.1:8815") | 8815 |
| HTTP / gRPC | curl -X POST :9090/query -d '{"sql":"SELECT …"}' | 9090 |
| MCP (agents) | relata mcp config --client claude → paste into Claude/Cursor | 9090/mcp |
free · server · clusterSame binary, same SQL, same governance — laptop to cluster. Storage is the only free-tier limit (10 GB); doors, multi-tenancy & clustering are free.
curl -sSf https://relatadb.dev/install.sh | sh # macOS · Linux
docker run -p 9090:9090 -v ~/.relata:/data ghcr.io/relatadb/relata
RELATA_PROFILE=server RELATA_BEARER_TOKEN=$TOKEN relata serve
| free (default) | server / cluster | |
|---|---|---|
| bind | 127.0.0.1 | 0.0.0.0 |
| auth | optional | required |
| storage | 10 GB cap | unlimited |
| doors · multi-tenant · cluster · Arrow · encryption | available on every profile | |
You don't define schemas up front. Relata recognizes what data is, shapes it to your ontology, stamps time and lineage, and indexes it for search — automatically, on the way in.
/admin/schema-discovery proposes a schema from samples.-- time-travel to what we knew on Jul 15 SELECT * FROM Person AS OF '2026-07-15' WITH PROVENANCE -- bind the read to a purpose (governance) [PURPOSE 'fraud'] SELECT name, iban FROM Person WHERE country = 'SG' -- relationships in one query PATHS_BETWEEN('john@acme.io','shellco@x.io', 5) -- meaning search SEARCH HYBRID('laundering shell co', top_k=20) FROM IntelChunk
/query, gRPC, Arrow, or MCP.EXPLAIN ANALYZE, automatic result caching.Nothing is overwritten; updates supersede. Ask AS OF any moment to replay exactly what the database believed then — court-grade history out of the box.
SELECT * FROM Account AS OF '2026-07-01' AS OF SYSTEM TIME '2026-07-10'
Bind a read to a purpose, enforce cell-level masking, keep a tamper-evident audit — expressed in the query, applied on every door.
[PURPOSE 'fraud'] SELECT name, mask(iban) FROM Person -- ACL evaluated · cells masked · egress filtered · audit written — automatically
A built-in BM25 engine — no separate search cluster to run. Weighted typo tolerance, CJK-aware, fast on large corpora.
SELECT * FROM IntelChunk WHERE SEARCH(content, 'recieves~2 invoice') -- ~2 = up to 2 typos LIMIT 20;
Ingest vectors with pgvector or let Relata embed text for you. Query pure vector, or fuse keyword + meaning in one hybrid call.
-- pgvector ingest (psql) INSERT INTO docs(id, emb) VALUES (1, '[0.12, -0.03, …]'); -- meaning + keyword fused (RRF) SEARCH HYBRID('shell company laundering', top_k=20) FROM docs;
Links are first-class. Walk paths, rank influence, detect rings and communities — no separate graph database.
| Ask | Operator |
|---|---|
| How are A & B connected? | PATHS_BETWEEN(a, b, hops) |
| Who are the key nodes? | PageRank · betweenness · HITS |
| Detect rings / cycles | GRAPH_SCC |
| Find communities | GRAPH_COMMUNITY (Louvain/Leiden) |
| Predict missing links | common-neighbors · jaccard |
The same entity shows up as an email, a phone, an IBAN, a wallet. Relata recognizes each, then resolves them into one — even when ingested through different doors.
RESOLVE_IDENTITY('john@acme.io') -- → unified entity + all aliases LOOKUP_IDENTITY('+15551234567') -- → matches across Person/Org/Account/Watchlist
Point Claude, Cursor, Cline or LangChain at Relata. Agents get 66 governed tools — and a memory that remembers across sessions, forgets on policy, and justifies any decision.
relata mcp config --client claude # → paste JSON, start chatting
relata token issue --principal "agent:fraud1" --role analyst --purpose fraud --ttl 3600
remember · recall · consolidate · forget · justify — tenant-isolated, bi-temporal.Relata is built for AI — agents call in for governed memory, tools, and retrieval — and with AI — it embeds, searches, and interprets underneath. The trust path (identity, governance, audit) stays deterministic. Meet it at rung one; it scales with you all the way up.
RELATA_LLM_URL / RELATA_EMBED_URL at Ollama, vLLM, LM Studio, or any OpenAI-compatible endpoint. Or run fully deterministic.Host all customers on a shared knowledge plane. Isolation is enforced at every layer, by construction: a tenant never sees another's rows, vectors or cache.
RELATA_TENANCY_MODE=multi relata serve curl -H "X-Relata-Tenant-Id: acme" -H "Authorization: Bearer $TOKEN" …
Switch to cluster, list peers. The coordinator routes each query to the fewest shards that can answer it, merges results, and tells you honestly when a result is partial.
RELATA_PROFILE=cluster \ NODE_ID=eu-1 CLUSTER_ROLE=coordinator \ CLUSTER_PEERS=http://eu-2:9090,http://us-1:9090 relata serve
206 + warnings.Repeated queries hit a result cache that's isolated per tenant & user (no leakage), with a per-tenant budget so no one starves anyone. Relata also predicts and pre-runs your next query.
WITH CACHE TTL / STALENESS / BYPASS.One database serves several of these at once. Each maps a real workload to the Relata surfaces it leans on.
| Use case | Connect via | Uses |
|---|---|---|
| Agentic RAG / agent memory | MCP | memory · hybrid search · provenance |
| Fraud & AML | S3 / pgwire | graph · identity · crypto/ownership trace |
| Identity-centric search | HTTP / Mongo | identity resolution · BM25 + hybrid |
| Investigations / knowledge graph | Neo4j / Bolt | paths · communities · ranking |
| Compliance & audit | SQL / pgwire | AS OF replay · provenance · GDPR erase |
| Multi-tenant SaaS backend | gRPC / HTTP | tenant isolation · policy · adaptive cache |
| Semantic / hybrid search app | pgvector / Flight | vectors · BM25 · hybrid |
| Operational store with history | Redis / ClickHouse | bi-temporal · replay · pipelines |
AS OF time-travels.[PURPOSE '…'] + masking, on every door.X-Relata-Tenant-Id; no tenant → no access.RELATA_ANN_EAGER=true to build on write.One binary, no external database, no GPU. Curl install in seconds, or a production Helm chart with autoscaling, mTLS and backups.
| How | Command |
|---|---|
| Install | curl -sSf https://relatadb.dev/install.sh | sh |
| Docker | docker run -p 9090:9090 -v ~/.relata:/data ghcr.io/relatadb/relata |
| Compose | infra/docker/docker-compose.yml — free / server / cluster |
| Kubernetes | helm install relata ./infra/helm/relata — StatefulSet · HPA · mTLS · backups |
| macOS app | RelataDB.app — menu-bar indicator, embeds the server |
The foundation is current. Open work, by outcome:
| Coming | What it means for you |
|---|---|
| Faster reads, no query changes | columnar + vectorized scan + version index + off-reactor execution |
| Indexing without slowing writes | index builds move off the hot path; per-segment parallel search |
| Smarter cluster reads | binary fan-out, full cross-shard aggregates, decided consistency |
| Instant + extensible detection | fire-on-commit jobs, adaptive anomaly, WASM tenant detectors |
curl -sSf https://relatadb.dev/install.sh | sh
relata serve # → http://localhost:9090 (docs · playground · /admin/dashboard)