Las tres opciones son un esquema compartido con una columna de id de inquilino, un esquema por inquilino y una base de datos por inquilino, cambiando simplicidad operativa por aislamiento. El esquema compartido escala mejor y cuesta menos, pero exige que el filtro de inquilino se aplique de forma estructural, por ejemplo con seguridad a nivel de fila o una capa de datos que siempre lo añada. Una base de datos por inquilino da el aislamiento más fuerte y la restauración por cliente más sencilla, con un coste operativo real.
Por qué lo preguntan los entrevistadores
Es una pregunta de arquitectura con consecuencias comerciales evidentes: afecta al coste de alta, a los vecinos ruidosos, a las promesas de cumplimiento y a cómo restauras los datos de un solo cliente. El entrevistador quiere una discusión de compromisos, no un favorito. Mencionar la seguridad a nivel de fila, el esfuerzo de migrar miles de esquemas y las copias y exportaciones por inquilino le dice que has pensado más allá de la primera reunión de diseño.
Cómo estructurar tu respuesta
- Expón los tres modelos sobre un eje de aislamiento y coste.
- Di cuál es tu opción por defecto y qué condiciones la cambiarían.
- Explica cómo impones la frontera de forma estructural, no por convención.
- Cubre la operación: migraciones, copias, restauración por inquilino y vecinos ruidosos.
Ejemplo de respuesta
Mi opción por defecto es un esquema compartido con un id de inquilino en cada tabla, porque es lo más barato de operar y dar de alta a un cliente es un insert en vez de un proceso de aprovisionamiento. El peligro es obvio, una cláusula where que falte filtra datos entre clientes, así que nunca lo dejo a la disciplina. Uso seguridad a nivel de fila con el inquilino tomado de la sesión autenticada, de modo que incluso una consulta escrita a mano no devuelve nada fuera del inquilino, y añado tests que intentan a propósito leer filas de otro. Paso a un esquema o una base de datos por inquilino cuando hay un motivo real: un cliente con requisitos contractuales de residencia de datos, un puñado de cuentas enterprise lo bastante grandes como para ser su propia carga, o un régimen de cumplimiento que quiere separación demostrable. Los costes son los que la gente subestima: una migración pasa a correr sobre cada esquema, el pooling de conexiones se complica y necesitas automatizar el aprovisionamiento y la restauración por inquilino. También he tenido que resolver aparte a los vecinos ruidosos, con límites de tasa por inquilino, porque aislar datos no es aislar capacidad.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo restaurarías los datos de un solo cliente desde copia en un esquema compartido?
- ¿Cómo ejecutas una migración de esquema sobre miles de inquilinos con seguridad?
- ¿Cómo evitas que un inquilino grande degrade a todos los demás?
Más preguntas para Desarrollador backend
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas