Arquitectura SaaS multi-tenant para LATAM
Cómo diseñamos Three Trackr para soportar múltiples organizaciones en una sola instancia, con aislamiento de datos real y rendimiento predecible.
Kevin Londoño
10 de abril de 2024
Un SaaS multi-tenant debe responder una pregunta antes de escribir la primera línea de código: ¿qué tan aislados deben estar los datos de cada cliente? De esa respuesta dependen la seguridad, el costo operativo y la facilidad para escalar.
Los tres modelos posibles
- Una base de datos por cliente: máximo aislamiento, pero costoso de operar y migrar.
- Tablas compartidas con una columna de tenant: barato, pero un error de filtro expone datos ajenos.
- Un esquema por cliente dentro de la misma base: un punto medio con aislamiento fuerte y operación manejable.
Lo que elegimos en Three Trackr
Separamos un esquema raíz, que guarda usuarios y organizaciones, de esquemas por tenant que contienen los datos operativos. Cada consulta se ejecuta dentro del contexto de un tenant, de modo que un error de consulta no puede mezclar información entre clientes.
Migraciones y rendimiento
Con esquemas separados, las migraciones deben aplicarse a cada tenant de forma controlada. A cambio, los índices y las consultas se diseñan siempre dentro del contexto de una organización, lo que mantiene los tiempos de respuesta estables aunque la plataforma crezca.
Lecciones
El aislamiento no se logra con disciplina del equipo, se logra con la arquitectura. Si la forma correcta de acceder a los datos es también la más fácil, los errores dejan de ser la norma.
