Saltar al contenido
Explorar conocimiento

concepto · intermedio · 2 min de lectura

Coreografía vs Orquestación

En sistemas distribuidos, la coreografía delega la coordinación a eventos entre servicios, mientras que la orquestación centraliza el control en un coordinador que dirige el flujo paso a paso.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • Coreografía vs Orquestación as an architectural concept

No cubre

  • implementation details

Supone

  • The reader understands distributed systems concepts.

Resumen

Cuando una operación de negocio abarca múltiples servicios, hay dos estrategias para coordinar el flujo:

Orquestación: un servicio central —el orquestador— dirige el proceso. Llama a cada servicio en orden, espera su respuesta, y decide el siguiente paso basado en el resultado. Es como un director de orquesta: cada músico espera su indicación.

Coreografía: no hay un coordinador central. Cada servicio sabe qué hacer cuando recibe un evento y emite eventos que otros servicios consumen. Es como un baile grupal donde cada bailarín conoce sus pasos y reacciona a los movimientos de los demás.

Alcance y supuestos

Este paquete cubre los dos enfoques de coordinación en sistemas distribuidos y el patrón Saga. Asume familiaridad con microservicios y mensajería.

Modelo mental

Un restaurante con dos modelos de atención. En el modelo con capitán —orquestación—, el capitán toma el pedido, lo pasa a cocina, coordina los tiempos y avisa a los mozos cuándo servir cada plato. En el modelo sin capitán —coreografía—, cada mozo ve los platos que salen de cocina y sabe a qué mesa van.

Uso práctico

  • Orquestación: flujos complejos con lógica condicional, fácil de entender y monitorear.
  • Coreografía: servicios muy desacoplados donde agregar pasos nuevos no debería tocar el orquestador.
  • ❌ Coreografía sin trazabilidad: difícil entender qué pasó cuando un flujo falla.

Ejemplo trabajado: saga con orquestación para compra

Un orquestador Saga maneja una compra: 1) reserva stock, 2) cobra pago, 3) agenda envío. Si el pago falla, el orquestador ejecuta la compensación de stock. Es fácil de entender y monitorear —el orquestador tiene el estado del flujo—. Cuando el CTO pide agregar un paso de verificación de fraude, se agrega en el orquestador sin tocar los servicios participantes.

Evidencia

  • El patrón Saga puede implementarse con ambos enfoques. La elección depende de la complejidad del flujo y el acoplamiento aceptable entre servicios.

Fuentes citadas