Decision database · For regulated industries

Compliance is a constraint, not a feature.

GDPR, HIPAA, NYDFS Part 500, SOX, NAIC, 21 CFR Part 11, NERC CIP, FedRAMP. InvariantDB starts from the procurement checklist and asks what the database has to do natively for a regulator to accept it without a custom integration.

Bitemporal, engine-enforced Hash-chained audit Crypto-shred without breaking the log Differential privacy on aggregates
Three primitives, one engine

Truth, time, and the freedom to forget.

Every regulated workload needs the same three things: a record of what was true, a proof of when you knew it, and a way to forget on demand without breaking the proof. We built them into the storage layer, not the resolver.

01
Time · Bitemporal
Ask what the system knew when it acted. Native Cypher — AT RECORDED '2026-03-05T10:00:00Z' reconstructs the database as it stood at that instant. No event-sourcing harness. No ETL. The auditor gets the answer the first time they ask.
02
Truth · Provenance
Every value carries its receipts. Who set it, when, from what source, with what confidence. Walk derivedFrom edges to trace any AI-generated value back to its inputs. Every committed write is hash-chained — db.verifyAclChain() proves the history hasn’t been touched.
03
Forgetting · Crypto-shred
Per-subject AES-GCM keys. db.destroySubjectKey('user-42') and every encrypted property for that subject becomes unrecoverable ciphertext — retroactively across every snapshot, backup, and audit replay. GDPR Article 17 and SOX retention, finally compatible.
Watch · 3 minutes

A regulator’s question, answered in five minutes.

A narrated walkthrough of the NYDFS Part 500 incident-disclosure request — tamper-evident chain verification, full decision lineage, the works. Fourteen vertical variants below.

invariantdb / walkthrough · nydfs 3:14
invariantdb / patient-chart-replay.cypher production · WORM
Question — what did the chart say on the day of treatment?
MATCH (p:Patient {mrn: 'M12345'})
  AT VALID    '2024-03-15'
  AT RECORDED '2024-03-15'
RETURN p
Provenance walk — where did this credit decision come from?
MATCH (a:Application {id: $appId})
CALL db.propertyProvenance(id(a), 'approved')
YIELD value, validFrom, version, txnAt,
      actor, source, reason, confidence
RETURN value, actor, source, reason,
       confidence, validFrom
ORDER BY version DESC
Receipt
APPROVED · 0.88c4d1…7f92
actoruw-2831 (piv)
sourcemodel-run 7a13
valid2024-03-15
recorded2024-03-15
ACL chain verified — db.verifyAclChain() OK
SUPERSEDED · rev 2bd41…0f73
reasonbureau correction
txnAt2024-04-02
actorbureau-ingest
confidence0.95
Original decision remains provable

What “built for compliance” means here.

Every primitive on this page satisfies four conditions: engine-enforced (not application-convention), auditable from the database (not from logs you wrote), documented in a public ADR, and verifiable with curl (not a screenshare). If a feature doesn’t meet all four, it’s not here.

01 / ENGINE-ENFORCED

The storage layer is the enforcement point.

Field-level ACLs, purpose binding, WORM, and bitemporal semantics live at the storage layer — not in the resolver, not in a middleware. Your Cypher, your SDK, and your MCP tool all hit the same gate.

Field-level ACL & purpose binding →
02 / HASH-CHAINED

Every relevant mutation lands in the chain.

Every committed snapshot links to a SHA-256 of its predecessor. db.verifyAclChain() re-walks the chain and reports tamper-evidence. SEC 17a-4(f) “non-rewriteable, non-erasable” — answered.

SOX walk-through in six minutes →
03 / VERIFIABLE

The auditor runs the same procedure your engineer does.

Every claim on this page maps to a call the auditor can run against the same endpoint. Every design choice is captured in a public design principle a regulator can read cold.

Read the ADRs →

Four verticals, mapped to primitives.

Each vertical below reduces its regulator-facing questions to the specific InvariantDB primitives that satisfy them — not application patterns, database calls.

Healthcare · HIPAA / HITECH / 21st Century Cures

The minimum-necessary rule, mechanized.

Every patient-chart field, every access, every erasure request routes through the same enforcement point — and every action lands in a hash-chained log the DPO can replay.

Q1 · Field-level ACL + audit chain

“Who saw which patient field, and when?”

Patient.ssn declared with acl: { read: ["compliance_officer"] } returns Null for an analyst’s MATCH (p:Patient) RETURN p.ssn — enforced by the engine, not the resolver. Every denied read appends to acl_events.log. db.aclEvents replays it; db.verifyAclChain proves no record was tampered.

Q2 · Crypto-shredding + erasure receipts

“Patient asks us to forget them. Can you prove erasure?”

Per-subject AES-GCM keys make right-to-erasure mathematical, not hopeful. Destroy the key (db.destroySubjectKey('patient_42')) and every encrypted property for that subject becomes unrecoverable ciphertext — retroactively across every snapshot, backup, and audit replay. db.proveErasure('patient_42') returns a signed receipt your DPO hands the patient.

Q3 · Bitemporal AT VALID + AT RECORDED

“What did the patient’s chart say on the day of treatment?”

MATCH (p:Patient {mrn: 'M12345'})
  AT VALID    '2024-03-15'
  AT RECORDED '2024-03-15'
RETURN p

AT VALID asks “what was clinically true that day?” AT RECORDED asks “what was in the chart that day?” — not the same question when a result was backdated. The legal record replays verbatim for malpractice, billing review, or public-health audit.

Bonus · Differential privacy on aggregates

Research data sharing without DUA pain.

Issue a research collaborator an API key with privacyMode: {epsilon_budget: 1.0, period: "Daily"}. The planner refuses any non-aggregate return — they can compute count, sum, avg for publication, never see individual records. Laplace noise + ε budget + dp_events.log audit replay give the IRB an actual proof.

“Show me the exact chart the treating physician saw — and every access to it since.”
Financial services · SEC 17a-4 / FINRA / SR 11-7 / GLBA

Reconstruct the trader’s view, not a reconstruction of it.

Every order, position, hedge, and exposure is a node; every state change is a versioned edge. The regulator gets the graph the firm’s risk engine actually operated against.

Q1 · Bitemporal + immutable snapshots

“Reconstruct the trader’s view at 14:32:17.4”

AT RECORDED '2024-10-15 14:32:17.4' returns the exact graph the firm’s risk engine operated against at that moment — not a reconstruction, the actual state. For SR 11-7 model-risk audit: “the same Cypher query against the same RECORDED timestamp returns the same answer forever” is the property a regulator wants to hear.

Q2 · WORM mode + hash-chained audit log

“Prove these trade records weren’t modified after submission.”

WORM mode (irrevocable) refuses every mutation except audit events. The hash chain links every committed snapshot to a SHA-256 of its predecessor; GET /graphs/{name}/audit/verify re-walks the chain and reports tamper-evidence. SEC 17a-4(f) “non-rewriteable, non-erasable” — answered.

Q3 · Per-property provenance

“Where did this credit decision come from?”

MATCH (a:Application {id: $appId})
CALL db.propertyProvenance(id(a), 'approved')
YIELD value, validFrom, version, txnAt,
      actor, source, reason, confidence
RETURN value, actor, source, reason,
       confidence, validFrom
ORDER BY version DESC

Every property version records who, when, from what source, and with what confidence. Adverse-action explanations, model-risk audits, ECOA fair-lending defensibility — one walk of the provenance log.

Q4 · Differential privacy on aggregate queries

“Quants want to compute portfolio statistics on real data.”

A research API key in private mode lets the quant team compute avg(position_size) and count(...) over the firm’s real positions without ever exposing per-position records — the planner refuses individual returns, Laplace noise is calibrated to the dpClamp bounds you declared, and the ε budget gives a math-backed guarantee. Pairs with the inverse: a production-trader API key with full access, gated by capability tokens with short TTLs.

“The same Cypher, against the same recorded timestamp, returns the same answer forever.”
Insurance · NAIC Model Audit Rule / state DOI rate filings

The rate filing reproduces from the live database.

Submission → Quote → Policy → Coverage → Claim → Reserve → Payment. Every transition is bitemporal; every AT VALID returns the legal record at that effective date.

Q1 · Bitemporal live graph

“Show the policy + coverage + claim graph as of the loss date.”

InvariantDB’s hosted demo is an insurance graph — 500K nodes across the full lifecycle. For a rate-filing review, the same MATCH (p:Policy)-[:HAS_COVERAGE]->(c) AT VALID '<filing-effective-date>' RETURN … query reproduces the filing’s exhibit dataset from the live database, weeks or years later. No ETL pipeline; no separate immutable archive.

Q2 · db.propertyHistory

“Adjuster changed a reserve estimate. What was it before?”

MATCH (r:Reserve {id: $reserveId})
CALL db.propertyHistory(id(r), 'amount')
YIELD value, validFrom, validTo, version, txnAt
RETURN version, txnAt, validFrom, validTo, value
ORDER BY version
Q3 · Provenance + capability tokens + audit chain

“Underwriting bound a risk. Who approved? What was the basis?”

Every binding decision records actor, source (model run id, or underwriter login), reason, confidence. Capability tokens give each underwriter their own time-limited credential — the audit log records which capability authorized the binding. NAIC Model Audit Rule § 6 mandates controls testing. The audit chain is the test artifact.

Q4 · Differential privacy

“Carrier sharing claim statistics with a state DOI.”

Issue the state’s data partner an API key with privacyMode configured. They get the aggregate statistics needed for the rate-review filing without ever seeing individual claimant records.

“Reproduce the exhibit dataset from the live database, weeks or years after the filing.”
Government / public sector · FedRAMP / FISMA / CJIS

PIV-authenticated capability, residency-constrained cluster, cryptographic retention.

The controls program is the customer’s; the data-layer evidence is InvariantDB’s. Every credentialed read is loggable; every retention window ends with a receipt.

Q1 · Data residency in Raft (in flight)

“This graph never leaves us-east-1.”

InvariantDB’s HA cluster (Raft, 3 nodes default) can be constrained to a single AWS region or sovereign jurisdiction. The graph’s residency schema field is enforced by the cluster’s membership controller. (Status: design complete, implementation in flight. The single-region single-node deployment satisfies most FedRAMP-moderate boundaries today.)

Q2 · Capability tokens + WORM

“Every property read by every credentialed user must be loggable.”

Mint a capability token with the agent’s PIV cert principal claim, a session id, an expiry. Every Cypher query under that capability appends a row to the audit chain naming the principal, property, timestamp, result. WORM mode prevents an insider from rewriting that history.

Q3 · Scheduled crypto-shred

“Suspect-data crypto-shred at end of authorized retention.”

db.destroySubjectKey runs on a cron schedule keyed to the retention table. The receipt (db.proveErasure) goes to the authorizing official.

Q4 · Differential privacy for statistical releases

Publish statistics from sensitive registries without re-identification risk.

Same answer as healthcare / finance. The US Census Bureau pioneered DP for the 2020 decennial; state and local agencies asking the same question get the same answer.

“PIV in. Session out. Every read on the chain. Retention ends with a receipt.”
The honest section

What we don’t claim.

Every primitive on this page is shipped — but compliance is ultimately a controls program, not a feature checklist. InvariantDB makes the database side defensible. We do not:

  • Replace your DPA / BAA. You still need contracts with your cloud provider, sub-processors, and customers.
  • Make your engineers HIPAA-trained. The database enforces ACLs; the engineer designs the schema with the right ACLs declared.
  • Certify against SOC 2 / HIPAA / FedRAMP for you. Those are audits of your organization. InvariantDB is the data-layer evidence; certification is your auditor’s call.
  • Cover every regulation by name. GLBA, CCPA, PIPL, LGPD, NYDFS Part 500 — most reduce to the same primitives, but we’re explicit about which we’ve designed for vs. which a customer would derive.

What we do claim: every primitive is mechanically auditable, every mutation hash-chained, every property bitemporal, every erasure cryptographic, every aggregate optionally noised, and every design choice captured in a public design principle a regulator can read.

What to do next

Pick a path.

See the primitives end-to-end
Wire field-level ACL + purpose binding
Issue a private-mode (DP) API key
Run the demos — insurance, AML, clinical-trial
Talk under NDA
BitemporalAT VALID + AT RECORDED as first-class Cypher semantics.
Hash chainEvery committed snapshot links a SHA-256 of its predecessor.
Crypto-shredPer-subject AES-GCM keys. Erasure is mathematical, not hopeful.
DP + ACLε-budgeted aggregates, field-level ACLs enforced at the storage layer.
Start with one control

Answer the auditor with the record itself.

Wire an ACL. Issue a capability. Replay a decision from the day it was made. The underlying record stays inspectable from day one — and every claim on this page maps to a call the auditor can run themselves.