Orquesto

Empezar

Qué es Orquesto

Una plataforma para automatizar procesos de negocio con flujos versionados, auditables y con personas dentro.

Orquesto ejecuta flujos de trabajo: grafos de pasos que reciben un disparo, transforman datos, llaman sistemas externos, piden decisiones a personas y generan documentos.

Se parece a otras herramientas de automatización en la superficie. Las diferencias que importan están abajo.

Todo está versionado#

Un flujo no se edita en vivo. Se guarda un borrador, se publica una versión, y esa versión queda inmutable.

Cuando un job arranca, queda fijado a la versión con la que empezó. Si publicás una versión nueva mientras hay jobs corriendo, esos jobs siguen con la lógica que tenían — no se migran solos. Un job pausado durante cinco días retoma con el grafo de hace cinco días.

Las mismas reglas aplican a los conjuntos de reglas, las plantillas de documento y los conectores: cada uno tiene versiones y una política (latest o pinned:vN) que decide cuál se usa.

Las personas son parte del flujo#

Un flujo puede detenerse y esperar a alguien. Hay dos formas:

  • Aprobación — alguien decide sí o no. Puede hacerlo desde la bandeja de entrada de la app o desde un enlace firmado por correo, sin tener cuenta.
  • Formulario — alguien completa datos que el flujo necesita para seguir.

Mientras espera, el job no consume un worker: queda guardado en la base y se reanuda cuando llega la respuesta. Lo mismo hace el nodo delay, que espera un tiempo en vez de una persona.

Todo lo relevante queda en el registro#

Publicar un flujo, revelar un secreto, decidir una aprobación, cambiar el rol de alguien, encender SSO: todo eso escribe una fila en un registro append-only que nadie puede modificar ni borrar.

No es una función que haya que activar. El registro es una proyección del mismo flujo de eventos que mueve el sistema, así que una acción auditable no puede ocurrir sin dejar rastro.

Multi-tenant de verdad#

Cada workspace está aislado en la base de datos con Row-Level Security de Postgres, no con un WHERE tenant_id que alguien pueda olvidar en una consulta.

Qué sigue#