Postgres row-level security on a tenant_id column is the right default for most B2B SaaS apps, a dev.to guide argues, at two statements and a policy per table. Its warning is that a policy can look secure in a migration diff and still let one tenant reach another's data.
Reality
- Evidence55
- Adoption
- Insufficient
- Hype gap+10
- Incentives
- Insufficient
- Confidence50
Neki puts a fleet of connection-owning routers in front of sharded Postgres, each emitting a topology plan you can read with EXPLAIN (NEKI_PLAN). Sessions live on the router holding them, so losing one is visible to the client.
Reality
- Evidence45
- Adoption
- Insufficient
- Hype gap+15
- Incentives80
- Confidence55
After bigger instances and a read replica failed to hold, a scheduling SaaS spent its first week tracing requests and changed no code. The five defects it found were each small enough to have shipped unnoticed.
Reality
- Evidence33
- Adoption12
- Hype gap+24
- Incentives72
- Confidence41
A dev.to tutorial benchmarks naive multi-tenant Row-Level Security at roughly 575 times slower than no policy at all. The variable is function volatility, not schema or traffic.
Reality
- Evidence36
- Adoption
- Insufficient
- Hype gap+22
- Incentives62
- Confidence47
A vector tile server has run in production for months with its cache deliberately set to 0 MB. The stale-tile bug that got it there is a lesson in reading what a config option actually refreshes.
Reality
- Evidence58
- Adoption24
- Hype gap−6
- Incentives22
- Confidence55
Postgres refusing connections is a counting problem. Install a pooler before you find the multiplier and you buy the same outage next month, plus one more hop in the path.
Reality
- Evidence56
- Adoption
- Insufficient
- Hype gap−8
- Incentives24
- Confidence55