Análisis técnico de Orkes Conductor 5.3.2 y sus garantías de entrega

Fuentes: Technical analysis of Orkes Conductor 5.3.2 and its delivery guarantees

Orkes Conductor 5.3.2 es una versión actualizada del sistema de orquestación de flujos de trabajo (workflow orchestrator) desarrollado por Netflix y mantenido por la Conductor OSS Foundation. Este sistema ejecuta computaciones compuestas por tareas pequeñas interconectadas, gestionando su estado y determinando el orden de ejecución. A diferencia de otras herramientas, Conductor ofrece garantías de entrega de mensajes 'al menos una vez', asegurando que los datos persistan y se procesen, aunque no garantiza que las tareas se ejecuten siempre con éxito, ya que pueden fallar o cancelarse.

La arquitectura de Conductor se basa en cinco componentes principales: servidores sin estado que gestionan flujos y programación, bases de datos como PostgreSQL o Cassandra para el estado persistente, colas de mensajes (como Redis) para la distribución de trabajo, y dos pools de trabajadores (estándar y personalizados) que ejecutan la lógica de negocio. En la versión 5.3.2, tanto la base de datos como la cola de mensajes eran obligatorios para preservar todas las escrituras reconocidas, una restricción que se relajó en la versión 5.4.0, permitiendo el uso de almacenamiento no persistente para colas secundarias.

Para validar estas propiedades, se construyó un entorno de pruebas utilizando la librería Jepsen y el SDK de Java de Conductor. El estudio evaluó las versiones 5.3.2, 5.4.0 y 5.5.0-rc1/2. La prueba se realizó en un clúster de diez máquinas Debian, simulando un entorno de nube con una base de datos PostgreSQL, una cola Redis y un trabajador personalizado escrito en Java. El trabajo de prueba consistía en un único flujo de trabajo con una tarea que dormía hasta 30 segundos para simular trabajo real. El objetivo era verificar que, aunque las tareas pueden reintentarse o fallar, el sistema converge eventualmente a un estado terminal (COMPLETED, FAILED, TIMED_OUT o TERMINATED) y que la salida de una tarea exitosa es consistente y observable.