SaaS multi-tenant
Hay tres modelos, y se eligen por servicio y no de una vez para todo el sistema.
- Silo: recursos dedicados por inquilino. Máxima contención del radio de impacto, sin vecino ruidoso y atribución de costo directa; a cambio, el gasto más alto y la mayor superficie operativa. Un silo sigue compartiendo identidad, onboarding y operación: eso lo diferencia de vender instalaciones separadas.
- Pool: recursos compartidos. Eficiencia y una sola experiencia para operar a todos; a cambio, radio de impacto compartido, vecino ruidoso y atribución de costo difícil.
- Bridge: la mezcla, decidida servicio por servicio.
Aislamiento no es una columna
El aislamiento es independiente de la autenticación y la autorización: un usuario puede estar autenticado y autorizado y aun así acceder a recursos de otro inquilino. Filtrar por tenant_id en el ORM no es aislamiento, es una convención. Aislar significa que la frontera la impone algo fuera del código de la funcionalidad: recursos dedicados en silo, o política en tiempo de ejecución —por ejemplo seguridad a nivel de fila— en pool. Y el contexto de inquilino sale de un claim del token, nunca de una entrada que controla quien llama.
Ruido y plata
El vecino ruidoso se contiene con cuotas, niveles y mamparos. La atribución de costos tiene dos mitades: medir el consumo por inquilino en la aplicación y cruzarlo con la factura mediante etiquetas.