Orquestación y coreografía.
Dos formas de coordinar servicios, y cuándo conviene cada una en un proceso de firma.
Cuando un proceso involucra muchos servicios, alguien tiene que coordinarlos. En arquitectura de software hay dos grandes formas de hacerlo, que se conocen con nombres tomados de la música y la danza: orquestación y coreografía. La diferencia parece técnica, pero cambia dónde vive la lógica del proceso, cómo se recupera de los errores y cómo se prueba lo que pasó.
Dos modelos
| Orquestación | Coreografía | |
|---|---|---|
| Idea | Un director conoce la partitura y le indica a cada servicio qué hacer y cuándo. | Cada servicio conoce su papel y reacciona a los eventos de los demás. |
| Dónde vive el proceso | En un solo lugar. | Repartido entre los participantes. |
| Fortaleza | Se ve el proceso entero, se controla el orden y se registra cada paso. | Bajo acoplamiento: se agregan participantes sin tocar a los demás. |
| Riesgo | El director se vuelve un cuello de botella si concentra todo. | Nadie ve el proceso completo y los errores son difíciles de seguir. |
Por qué la firma pide orquestación en el centro
Un proceso de firma tiene requisitos que favorecen a un director: el orden de los firmantes importa, cada paso debe quedar registrado en una evidencia única y, ante una falla, hay que saber exactamente en qué estado quedó el documento. Repartir esa lógica entre servicios que reaccionan a eventos haría muy difícil contar, años después, la historia completa.
Y coreografía en los bordes
Lo que ocurre antes y después de la firma, en cambio, se beneficia de la coreografía. Cuando un documento queda firmado, la plataforma publica un evento; el sistema de contratos lo archiva, el de facturación lo registra, el motor de flujo del cliente avanza al paso siguiente. Ninguno necesita conocer a los demás, y se pueden sumar participantes sin tocar el proceso de firma.
- Eventos firmados. Para que quien los recibe sepa que vienen de la plataforma.
- Entrega al menos una vez, con identificador. Para que el receptor descarte repeticiones.
- Operaciones idempotentes. Para que un pedido repetido no produzca dos firmas.
- Estados explícitos. Para que cualquier participante pueda preguntar en qué punto está un proceso.
La orquestación centraliza el proceso y facilita la prueba; la coreografía reparte la coordinación y facilita la integración. Un buen diseño de firma orquesta el núcleo, donde cada paso debe probarse, y coreografía los bordes, con eventos firmados, entregas con identificador y operaciones idempotentes.