Nothing is hard-deleted
Records are never removed to make a problem go away. A mistake is corrected by a recorded reversal or correction document, and the original stays visible, which is what makes the trail evidence rather than a story.
HomeSecurity
Security & integrity
In a multi-tenant system, “we filter by customer” is a promise every query has to keep. Corva moves that promise one layer down, into the database, where it fails closed instead of failing quietly.
Tenant isolation
Every tenant-owned table carries a policy the database applies to every query. The application sets who it is acting for; the database decides what that entitles it to see.
The important property is the failure mode. If the tenant context is missing (a bug, a forgotten parameter, a new code path, a direct connection) the policy does not fall back to “show everything”. It matches nothing. A query without a valid tenant context returns an empty result, and a write without one is refused.
That is what fail-closed means, and it is why isolation here does not depend on every developer, forever, remembering a WHERE clause.
Same query, three contexts
Illustrative row counts. One table, one query text: the database, not the application, decides the result.
Integrity
Records are never removed to make a problem go away. A mistake is corrected by a recorded reversal or correction document, and the original stays visible, which is what makes the trail evidence rather than a story.
Permissions are evaluated inside the transaction, before anything changes. An override is itself a recorded event, naming who authorized it and when.
The application's database role can move business data but cannot alter the schema; structural changes run separately under a role the running service does not have.
Concurrency
A warehouse at its busiest is exactly when a system's guarantees get tested. These are the four concurrency failures that quietly corrupt distribution systems, and how Corva settles them.
These are verified the only way they can be: with tests that actually run the race. Concurrency and isolation suites are part of the gate every change has to pass.
Isolation model, posting rules, concurrency behavior — we would rather answer them now than have you discover the answers later.
hello@corvaerp.com