Pregunta de entrevista para Desarrollador backend

Estás construyendo un producto para empresas. ¿Cómo aíslas los datos de un cliente de los de otro?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

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

Ejemplo hablado, en primera persona

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 funciona

Preguntas 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

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot