Features

Everything a decision database needs.

InvariantDB stores what was true, when, and what the system knew when it acted. The catalog below is every shipped primitive that makes that thesis real — from bitemporal Cypher and cryptographic provenance to compliant forgetting and agent memory. Every row is implemented, tested, and deployed.

01 · Storage

Storage + durability

FeatureSurface
Append-only, immutable versioned historyEngine-level; see design principles
Bitemporal versioning on every property (VALID + RECORDED)Cypher AT VALID / AT RECORDED / OVER VALID BETWEEN
Hash-chained audit log on every commit/graphs/{name}/audit/verify + db.verifyAclChain
WORM mode (irrevocable write-block)/graphs/{name}/worm + /worm/engage
Schema versioning + history/graphs/{name}/schema/history
Crash-safe, deterministic recoveryEngine-level; automatic on restart
Background full-graph consolidationcompact_async
Per-property history walkdb.propertyHistory(nodeId, 'prop')
Online backup + restore round-trip/graphs/{name}/backup + /graphs/{name}/restore
02 · Language

Cypher language

Implements openCypher with bitemporal extensions. Highlights:

FeatureExample
MATCH / WHERE / RETURN / WITHstandard
CREATE / MERGE / DELETE / DETACH DELETEstandard
SET / SET += (map-merge)SET n += {a: 1, b: 2}
AT VALID / AT RECORDED / AS OFMATCH (n) AT VALID '2024-06-01' RETURN n
OVER VALID BETWEEN, OVER RECORDED BETWEENhistory walks across a window
OPTIONAL MATCH with multi-stage carryovernested across WITH boundaries
UNWIND ... CREATE bulk-seed + range()UNWIND range(1, 1000) AS i CREATE (:Node {n: i})
WITH-stage aggregationWITH x, count(*) AS c WHERE c > 5
count(DISTINCT x) / collect(DISTINCT x)dedup-aware aggregates
Pattern comprehensions[(a)-[:KNOWS]->(b) | b.name]
Quantifiers ANY / ALL / NONE / SINGLEWHERE ALL(x IN xs WHERE x > 0)
reduce(acc=init, x IN list | expr)functional fold
shortestPath / allShortestPathspath algorithms in-query
COUNT { MATCH ... } count-subqueryCypher-5
Named paths p = (a)-[r]->(b)length(p), nodes(p), relationships(p)
=~ regex, STARTS WITH, CONTAINStext matching
Inline cosine() / euclidean() / dotProduct()vector similarity in WHERE/RETURN
$name param substitutionanywhere a literal goes, including LIMIT $page
EXPLAIN / EXPLAIN ANALYZEdry-run + with-timing
CREATE INDEX (current + historical backfill)property indexes
UNIQUE constraintparser + write-path storage check
04 · Graph algorithms

Graph algorithms

AlgorithmSurface
shortestPathgds.shortestPath(source, target, edgeType?)
pageRankgds.pageRank(maxIters?, damping?)
connectedComponentsgds.connectedComponents()
degreeCentralitygds.degreeCentrality(direction?)
05 · Agent memory

Agent memory (AI-first primitives)

Full guide: AI memory.

PrimitiveProcedure(s)
Episodic memory logdb.recordEpisode, db.replayEpisodes
Working-memory consolidationdb.consolidateSession, db.sessionSummaries
Inference provenance + belief revisiondb.recordBelief, db.reviseBelief, db.beliefLineage
Salience decay + reinforcementdb.applySalienceDecay, db.reinforceSalience
Vector + graph fusiongds.semanticMatchExpand
Conversation sub-tenancyCapability tokens with session claim
Embedding drift detectiondb.embeddingModelDrift
Property provenance walksdb.propertyProvenance, db.derivedFrom
06 · Compliance

Compliance moat

Full guide: Compliance. Vertical mappings: Regulated industries.

PrimitiveSurface
Crypto-shredding (subject-keyed AES-GCM)db.destroySubjectKey, db.proveErasure
Field-level ACL + audit chainSchema-driven; db.aclEvents, db.verifyAclChain
Purpose binding (GDPR Article 5(1)(b))Principal.purpose
Per-subject DSAR export (Article 20)db.subjectExport(subject)
Per-property provenancedb.propertyProvenance + db.derivedFrom
Differential privacy on aggregatesAPI-key privacyMode + Laplace-noised count/sum/avg with persistent ε budget
Capability tokens/capabilities/issue (signed, scoped, time-limited)
Compliance bundle export/graphs/{name}/compliance/export
Tamper-evident audit chaindb.verifyAclChain, db.dpVerifyChain, history witness
07 · Server

Server / API

FeatureSurface
HTTP + JSON Cypher endpointPOST /cypher
Schema CRUDGET/PUT /graphs/{name}/schema
Multi-graph registryGET /graphs, POST /graphs, DELETE /graphs/{name}
Per-tenant rate limitingAPI key rateLimits: {query, mutate}
Per-query timeoutConfigurable at deploy time
Slow query log + counterConfigurable threshold; Prometheus surface
Cooperative yielding (long queries)Configurable throttle threshold
Cursor / streaming readsPOST /graphs/{name}/cursor
/explain endpointPlan + cost estimate
/healthz / /metrics (Prometheus)Liveness + observability
OpenAPI specGET /openapi.yaml + GET /docs (Swagger UI)
OpenTelemetry tracingOTLP/gRPC; standard OTLP env vars
08 · Auth

Auth

ModeSurface
Operator-static bearer tokensAuthorization: Bearer <env-token> (constant-time compared)
Runtime-issued API keysgq_<random> prefix; SHA-256 stored, secret shown once
JWT (Cognito-style)Configurable issuer + JWKS URL
HMACPer-request signed header
Capability tokensSigned, scoped, time-limited bearer
Field-level ACL + rolesSchema-declared; principal carries role list
Purpose bindingPrincipal.purpose from JWT / capability
Tenant isolationPer-graph tenant check
Differential-privacy modeprivacyMode on API key — aggregate-only restriction
09 · SDK

SDK

Python (pip install invariantdb)

  • db.cypher(...), db.cypher_streaming(...)
  • db.graphs.ensure(name), db.graphs.list()
  • db.indexes.ensure(label, prop)
  • db.search.fulltext(...), db.search.vector(...), db.search.prebuild(...)
  • db.cursor.stream(query, batch_size)
  • Capability + Cognito token providers

Node (npm install https://sdk.invariantdb.com/node/invariantdb-0.7.0.tgz)

Same surface, idiomatic to TypeScript.

10 · MCP

MCP — Model Context Protocol

Live endpoint: https://invariantdb.com/e/mcp (HTTP POST, JSON-RPC 2.0; auth via Authorization: Bearer gq_...). Drop-in for Claude Desktop, Cursor, Continue, or any MCP-compatible agent client. 14 tools: read, search, agent-memory, compliance, translation. See the quickstart for the 30-second Claude Desktop config snippet.

11 · Replication

Replication / distribution

FeatureStatus
Quorum-replicated consensusShipped — strongly-consistent single-leader cluster
Read replicasShipped — horizontal reader scale-out
HA + DR drill (multi-node failover + restore)In flight
Data residency constraints in replicationIn flight
12 · Operability

Operability

FeatureSurface
Prometheus /metrics30+ counters (queries, mutations, ACL events, DP counters, integrity ops)
CloudWatch dashboard JSONShipped with production onboarding
Job lifecycle persistenceLong-running imports survive restart
Per-graph flush control/flush, /flush_async
Per-graph warm-up/graphs/{name}/warmup
Per-graph backup + restore/graphs/{name}/backup, /restore
Engine info / capabilities/healthz
13 · Boundaries

Things we don't claim

  • We are not SOC 2 / HIPAA / FedRAMP certified yet. SOC 2 Type 2 is on the roadmap and gated to our first paid contract in a regulated industry.
  • We don't replace your DPA / BAA / SAR controls program. The database makes the data-layer defensible; certification audits your organization as a whole.
  • Data residency constraints in replication are design-complete but not yet shipped. Single-region single-cluster satisfies most FedRAMP-moderate boundaries today.
  • min/max under differential privacy isn't implemented yet (deferred to a later phase). count/sum/avg are shipped.
  • We're not openCypher 100% compliant. Covered surface in docs.
Start with one decision

Build systems that can explain themselves later.

Connect an agent, maintain an agentic twin, or replay a historical state. The underlying record stays inspectable from day one.