rjbase.io is a high-performance tokenized datalake platform. Ingest petabytes, tokenize sensitive fields on the way in, and run zero-trust analytics without surfacing raw data to a single analyst, model, or downstream system.
Most lakes solve storage. rjbase.io solves storage and the question your security team asks five minutes later: who can actually see this row?
Every sensitive column is replaced with a deterministic token at ingest. Raw values live in a separate vault that analysts and models never touch.
Detokenization is a policy decision, not a query. Define who, where, and why; rjbase enforces it at the engine and audits every reveal.
A tiered storage engine routes recent partitions to NVMe, the long tail to object storage — your SQL never has to know.
Mutual-TLS service identities, short-lived row-scoped capabilities, and per-query justification — enforced before the planner ever runs.
Speak ANSI SQL, dataframe Python, or our streaming gRPC API. Engines share the same catalog, policy graph, and tokenization vault.
Auto-compaction, partition pruning, vacuum, and bloom-filter rebuilds happen on schedule. No 3 a.m. pages over “the lake” again.
rjbase.io is built around a single contract: every byte enters via the tokenization layer, and every byte that leaves passes through the policy engine. Storage, compute, and catalog all sit underneath that boundary.
Declare which fields are sensitive in your table DDL. rjbase handles vault writes, masking, and detokenization based on the policies you wire up — your application code never changes.
Read the docs-- Declare a tokenized table CREATE TABLE events.payments ( id UUID PRIMARY KEY, customer_id TEXT TOKENIZED('pii.customer'), card_pan TEXT TOKENIZED('pci.pan', format = 'fpe'), amount DECIMAL(12,2), ts TIMESTAMP ) PARTITION BY days(ts); -- Analysts query the lake; PCI fields stay opaque SELECT customer_id, sum(amount) FROM events.payments WHERE ts >= now() - INTERVAL '30 days' GROUP BY customer_id; -- Only the fraud service, with justification, can detokenize SELECT detokenize(card_pan, reason => 'chargeback:48391') FROM events.payments WHERE id = '7f8c…';
Talk to our team about an evaluation cluster. We typically have engineering partnerships running inside two weeks.