Renuncias a una única transacción distribuida y usas una saga: una secuencia de transacciones locales donde cada paso publica un evento que dispara el siguiente, y cada paso tiene una acción compensatoria para deshacerlo. La consistencia pasa a ser eventual, así que el trabajo de diseño es decidir qué compensar, qué reintentar y qué escalar a una persona. Modela el flujo de forma explícita, coreografiado con eventos o coordinado por un orquestador.
Por qué lo preguntan los entrevistadores
El entrevistador comprueba si tiras de commit en dos fases o entiendes por qué casi nadie lo usa entre servicios. Quiere oír hablar de acciones compensatorias, idempotencia, la diferencia semántica entre deshacer y reembolsar, y cómo mantienes visible la máquina de estados. También sondea si cuestionarías las fronteras entre servicios, porque algunos de estos pasos podrían ir juntos.
Cómo estructurar tu respuesta
- Explica por qué una transacción distribuida no es la respuesta.
- Define la saga: transacciones locales más compensaciones.
- Contrasta coreografía con orquestación y elige una.
- Cubre las partes sucias: fallo parcial, reintentos, escalado a personas.
Ejemplo de respuesta
Un commit en dos fases entre tres servicios y tres bases de datos significa mantener bloqueos a través de la red y un coordinador que puede bloquearlo todo si muere, así que no lo haría. En su lugar el flujo se convierte en una saga. Cada servicio hace su transacción local y emite un evento, y cada paso tiene una compensación definida: si envíos no puede asignar, liberamos la reserva de inventario y reembolsamos o anulamos el pago. Lo importante es que la compensación es una acción de negocio, no un rollback; un reembolso deja un registro visible y eso es correcto. Para cualquier cosa con más de unos tres pasos uso un orquestador en vez de coreografía pura, porque con coreografía el flujo real no vive en ningún sitio y nadie puede responder dónde se ha quedado atascado un pedido. Un orquestador me da una sola máquina de estados, timeouts por paso y un estado consultable. Cada paso es idempotente y se reintenta con backoff, y todo lo que agota los reintentos aterriza en una cola de operaciones con el id del pedido, porque algunos fallos necesitan de verdad a una persona.
¿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
- ¿Qué haces cuando la propia acción compensatoria falla?
- ¿Cómo le mostrarías a un cliente el estado de un pedido en curso?
- ¿Cuándo fusionarías dos servicios en vez de montar una saga entre ellos?
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