Prompteo

Unidad 7 · 2 min

SaaS multi-tenant

Silo, pool y bridge; por qué filtrar por tenant_id no es aislamiento; cómo se contiene al vecino ruidoso y cómo se atribuye el costo de un recurso compartido.

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.