A database per organisation
Every organisation gets its own MongoDB database, not a row in a shared table filtered by a tenant column. There is no cross-tenant query path to get wrong, because a query cannot address two databases at once.
The tenant is resolved by the API gateway from your authenticated session and travels inside the request to every service. Nothing a browser sends — no header, no payload field — can name a different organisation.
