Performance

Built for sensitive data. Measured at scale.

Privacy infrastructure sits on the critical path of your application. Every additional millisecond affects the systems that depend on it. Privacy Vault is benchmarked against real application requests, database workloads and growing token-store sizes — the results below reflect measured configurations, not theoretical capacity estimates.

Performance overview

Benchmark-backed. Single-primary tests. Durability enabled.

Privacy infrastructure sits on the critical path of your application. Every additional millisecond affects the experience of the systems that depend on it. Privacy Vault is benchmarked against real application requests, database workloads and growing token-store sizes. The results below reflect measured configurations, not theoretical capacity estimates.

Benchmark methodology

Our benchmarks are designed to reflect production-relevant conditions rather than isolated in-memory operations.

ParameterConfiguration
DatabasePostgreSQL
Payload256 bytes
NetworkSeparate client and database nodes
InfrastructurePrivate VPC
DurabilityEnabled
Dataset1M–50M tokens
ConcurrencySingle worker and 64 concurrent workers

Results are generated from committed benchmark artifacts. Raw JSON results are the source of truth for published metrics. P99 and P99.9 are presented separately where the artifacts provide them; we do not infer one from the other.

Application-level latency

What your application actually experiences.

The following measurements represent HTTP end-to-end requests, including the application and database boundary.

OperationP50
Detokenize — async audit280 µs (0.28 ms)
Search — blind index340 µs (0.34 ms)
Tokenize — async audit850 µs (0.85 ms)
Detokenize — durable default1.45 ms
Tokenize — strict durable1.88 ms

Batching increases the durable processing ceiling to approximately 13.4k operations per second per tenant.

Database engine performance

The underlying vault, measured independently.

These benchmarks measure AES-256-GCM decryption and an indexed database point read for detokenization, and the corresponding indexed lookup for blind-index search.

Detokenization

Metric1M rows20M rows
P50 — single worker130 µs (0.13 ms)160 µs (0.16 ms)
Throughput — 64 workers87,760 /s64,596 /s
P99.9 — 64 workers3.29 ms4.70 ms

Blind-index search

Metric1M rows20M rows
P50 — single worker140 µs (0.14 ms)140 µs (0.14 ms)
Throughput — 64 workers53,229 /s47,889 /s
P99.9 — 64 workers5.36 ms6.67 ms

Approximately 95% of vault traffic is read-oriented. Optimizing indexed retrieval and detokenization therefore has a direct impact on the performance of applications using the vault.

Corpus scaling

One primary. Five dataset sizes.

The ingestion rate remains relatively consistent as the corpus grows. Read throughput changes with the size of the working set and the memory available to the database.

TokensIngest /sDetokenize P50Detokenize /sSearch /s
1M19,939130 µs (0.13 ms)87,76053,229
10M19,616190 µs (0.19 ms)69,74649,058
20M19,559160 µs (0.16 ms)64,59647,889
30M20,109630 µs (0.63 ms)45,40741,534
40M17,880940 µs (0.94 ms)42,16240,800
50M17,8531.00 ms38,61733,525

Fifty million tokens on a single PostgreSQL primary. No architectural redesign required for the tested configuration.

Storage and memory

Know your infrastructure requirements before you scale.

Measured database storage is approximately 2.92–2.97 KB per token. Memory availability influences how much of the working set can remain readily accessible.

ReferenceCapacity
Approximate storage per token3 KB
Reference RAM-to-corpus ratio1.6×
16 GB RAM5M tokens
32 GB RAM10M tokens
128 GB RAM20–30M tokens

These are benchmark-derived reference points, not universal capacity guarantees. Actual requirements depend on concurrency, query patterns, retention, database configuration and workload distribution.

Infrastructure

Reference infrastructure configurations.

Token volume, CPU and RAM reference points derived from the benchmark matrix.

Token volumeCPURAM
5M2 vCPU16 GB
10M8 vCPU32 GB
20–30M32 vCPU128 GB

Actual requirements vary with concurrency, query patterns, retention, database configuration and workload distribution.

Key backend

OpenBao key backend. A separate boundary. A separate benchmark.

The token store and cryptographic key backend serve different responsibilities and must not be conflated.

The PostgreSQL token store has been measured up to 50M tokens per tenant. The OpenBao transit-key backend has been measured up to 30M keys. We do not claim a measured 50M-key OpenBao deployment. This distinction matters because overall system capacity depends on the performance and sizing of both components.

KeysFill TPSp50p99p99.9
5M2,84227.45 ms122.17 ms189.31 ms
10M2,77727.21 ms129.34 ms202.62 ms
20M2,43227.33 ms161.41 ms493.82 ms
30M3,72221.31 ms91.90 ms145.66 ms

OpenBao 2.7.2, single server, integrated storage (raft/bbolt), measured at 100 concurrent workers. p99.9 figures reflect raft-snapshot overlap; steady-state phases reach 10–11.4k lookups/s with p99 1.6–39 ms through 20M.

Honest limits

What we measure — and what we don't claim.

We believe engineering claims should be independently verifiable.

What we measure

Application-level latency. Database engine latency. P50, P99 and P99.9 where benchmark artifacts provide them. Concurrent operation throughput. Ingestion throughput. Dataset growth and storage footprint. Restore performance. Error rates across benchmark workloads.

What we don't claim

Theoretical maximum capacity presented as measured performance. Zero latency or unlimited scalability. 50M OpenBao transit keys. 99.9% historical uptime. SOC 2, ISO 27001 or other organizational certifications that we do not hold.

Our position is simple: if we publish a number, there should be evidence behind it.

See it on your own workflow.

Bring one sensitive flow. We will map it to a vault schema live in 30 minutes.