Capability map — what shifted, what ships
This is the diligence table: each concern that traditionally lives in the business / ops layer, where Eelden puts it, and whether it ships today. Status labels match Status. Full agent-facing inventory: internals/shift-left-audit.md.
Map
Inventory
| Concern | Traditional home | Eelden home | Today |
|---|---|---|---|
| Tenant isolation | tenant_id / RLS / separate DBs | Tenant page namespace; implicit query scope | Yes |
| Transactions | App TX helpers; sometimes 2PC fantasies | atomic { … } tenant-scoped only | Yes (single-process conflict detection) |
| Cross-process conflict detection | — | Same FCW model, multi-process | Not yet |
| Schema rollout across tenants | Migration runners / fleets | Fingerprint apply-on-touch | Yes (Slice A) |
| Breaking migration history purge | Manual cleanups | @breaking + history compact | Not yet |
| Point-in-time / audit views | Audit tables + backups | Named snapshots + asof | Yes (named snapshots) |
| Raw page-history time travel | — | Versioned pages without named snap | Not yet |
| Change data capture | Debezium / triggers / DIY | WAL-derived row CDC per tenant | Yes |
| Cross-tenant read models | Shared tables / ETL | CDC → disposable indexes | Partial (CDC yes; index query / across tenants execute Not yet) |
| Cross-tenant writes | Distributed TX | App-layer sagas (D3) | Pattern (no language flow yet) |
| Staging / support copies | Dump & scrub | fork tenant CoW | Yes |
| Data residency | Infra tickets + app routing | Residency on tenant catalog | Catalog Yes; enforcement Not yet |
| Per-tenant encryption | App KMS / column crypto | encryption_key_ref on catalog | Reserved; at-rest path Not yet |
| Sharding / placement | App shard maps | One write authority per tenant; cloud backends swap traits | Local Yes; cloud backends Not yet |
| Cross-tenant leak prevention | Review + tests | Engine scope; privileged escape | Partial (scope yes; LSP package / across execute Not yet) |
| Money integrity | App decimal / float | Money value + typechecker + TS client | Yes |
| Schema drift | Silent SQL coercion | unknown + is / as | Yes |
| Corruption visibility | Opaque disk errors | Checksum reports → health API | Yes |
| Export / import packaging | pg_dump culture | Directory is live unit; package op later | Not yet |
Visual: ownership boundary
How to use this in a sales or partner review
- Start from Yes rows — that is the live demo surface (Studio, playground, CLI).
- Call Partial / Not yet out loud — trust is the gating feature; overclaiming destroys the thesis (philosophy).
- Treat control-plane rows as not your customer's engineering problem later — they stay out of app code by design even before they ship.
Related: Value · Shift-left bet · Tenants · Status