Skip to main content
Dejan Demonjić brand logoDejan Demonjić
Decision log
Work
About
Contact

#efcore

Log entries with this tag, newest first.

  1. Decision recordMulti-tenant platforms

    A schema per tenant: the database owns the name

    When every tenant's rows live in a PostgreSQL schema of their own, the mapping from identifier to schema name is a security boundary. So the mapping moved into the database: a stored generated column, a unique index, COLLATE "C", and a plain CREATE SCHEMA as the claim on a new name. With the two error codes that mean 'taken', the one-at-a-time gate, and an EF Core pooling detail that only production-shaped tests found.

    16 Oct 2026 · 10 min read

Dejan Demonjić

Designing and building secure, multi-tenant .NET platforms, and writing down the decisions behind them.

Read

  • Decision log
  • Work
  • RSS feed

Contact

  • dejan@demonjic.com
  • Write to me
  • About

Elsewhere

© Dejan Demonjić. Written in Belgrade.