Ingeniero de Datos: pregunta de entrevista
¿Cómo abordas pipelines de datos exactly-once?
Los efectos exactly-once requieren entrada reproducible, procesamiento determinista, escrituras idempotentes o transaccionales, IDs estables y checkpoints. La garantía del broker por sí sola no cubre todo el pipeline.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
Un broker puede prometer entrega al menos una vez, y algunos ofrecen exactamente una vez transaccional dentro de su propio límite, pero el efecto de negocio al final del pipeline depende de lo que haga el consumidor. El pipeline es efectivamente exactamente una vez cuando la entrada puede reproducirse desde un offset estable, el procesamiento es determinista, cada evento lleva una identidad estable y la escritura en el destino es idempotente o transaccional con el checkpoint, de modo que un fallo entre procesar y confirmar el offset provoca un reprocesado que no cambia nada. Los duplicados se tratan como normales, no excepcionales, y se monitorizan.
Ejemplo
Un stream de pagos se consume de Kafka; cada evento tiene payment_id, el destino es una tabla con payment_id como clave primaria y un upsert, y el consumidor confirma offsets solo después de que el upsert tenga éxito. Cuando un consumidor se reinició a mitad de lote, reprocesó 200 eventos y la tabla no cambió. Una métrica aparte cuenta upserts duplicados para detectar un productor roto que envía el mismo evento miles de veces.
Errores frecuentes
- Confiar en la opción exactamente una vez del broker y escribir con inserts simples.
- Confirmar el offset antes de la escritura y perder eventos en un fallo.
- Derivar la identidad del evento del tiempo de procesamiento, de modo que las repeticiones crean registros nuevos.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.