Pregunta de entrevista para Desarrollador backend

¿Cómo evitas que un cambio en el backend rompa a los clientes que consumen tu API?

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

Respuesta rápida

Haz que el contrato sea comprobable por máquina. Mantén un esquema, un documento OpenAPI o definiciones protobuf, generado desde el código o validado contra él, y ejecuta en CI una comprobación de compatibilidad que falle ante un cambio incompatible como un campo eliminado o un tipo más estricto. Añade pruebas de contrato dirigidas por el consumidor para los clientes internos, y versiona los eventos igual que versionas los endpoints.

Por qué lo preguntan los entrevistadores

El entrevistador quiere saber si la compatibilidad se impone con herramientas o esperando que alguien se dé cuenta. Está atento a un esquema en control de versiones, una puerta automática de diferencias y cómo cubres los payloads de mensajes además de HTTP. También toca la realidad organizativa: cómo averiguas quién consume de verdad un endpoint antes de cambiarlo.

Cómo estructurar tu respuesta

  • Pon el contrato en control de versiones y mantenlo sincronizado con el código.
  • Añade una diferencia automática de compatibilidad como puerta de CI.
  • Cubre a los consumidores internos con pruebas de contrato.
  • Explica cómo encuentras a los consumidores reales antes de cambiar nada.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

El contrato tiene que ser un archivo que CI pueda comparar, porque si no la compatibilidad depende de quien revise la pull request. Así que el documento OpenAPI vive en el repositorio y se genera desde los manejadores, lo que evita que se convierta en ficción, y hay un job que lo compara con la versión de la rama principal y falla ante cualquier cosa incompatible: un campo eliminado, un parámetro nuevo obligatorio, un tipo más estrecho. Añadir siempre está permitido. Para los consumidores internos me gustan los contratos dirigidos por el consumidor, donde cada cliente publica el subconjunto del que depende de verdad y mi build verifica que sigo cumpliéndolos todos, así me entero al construir y no por su guardia. Los eventos reciben el mismo trato mediante un registro de esquemas con un modo de compatibilidad configurado, ya que un payload de evento roto es peor que un endpoint roto porque los consumidores fallan de forma asíncrona. Y antes de cambiar nada reviso las métricas de peticiones por cliente, porque el contrato me dice qué es posible y las métricas me dicen quién lo notaría de verdad.

¿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

  • ¿Qué cuenta como cambio incompatible en una respuesta JSON?
  • ¿Cómo tratarías a un cliente que depende de un comportamiento no documentado?
  • ¿Cómo gestionas la evolución del esquema de eventos a lo largo de los años?

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