Saltar a contenido

Operate

Aplicacion web de monitoreo de procesos que consume datos exportados por el CamundaExporter via Elasticsearch/OpenSearch. Permite visualizar instancias de proceso, inspeccionar variables, resolver incidents y ejecutar operaciones batch.

Contexto

Operate es la herramienta principal para que los operadores y desarrolladores observen que esta pasando en el cluster Zeebe en tiempo casi-real. No interactua directamente con los brokers para leer estado — en su lugar consume una proyeccion de los datos que el concepts/exporter-system escribe en la concepts/search-infrastructure.

Arquitectura de datos

Operate se alimenta exclusivamente de indices Elasticsearch/OpenSearch escritos por el CamundaExporter:

  • El indice principal es operate-list-view que utiliza un esquema de join relation con relaciones parent-child:
  • Parent: processInstance — la instancia de proceso como entidad raiz
  • Children: activity (elementos BPMN ejecutados) y variable (variables del scope)
  • Este modelo de join permite queries eficientes para listar instancias con sus actividades y variables en una sola consulta
  • Indices adicionales cubren: operate-process, operate-incident, operate-flownode-instance, operate-decision, operate-batch-operation

Entity model

La entidad central es ProcessInstanceForListViewEntity con los siguientes estados:

Estado Descripcion
ACTIVE Instancia en ejecucion, aun no ha terminado
COMPLETED Instancia finalizo exitosamente todos sus paths
CANCELED Instancia fue cancelada explicitamente (via API o Operate)
INCIDENT Instancia tiene al menos un incident activo que bloquea progreso

Los incidents representan errores que requieren intervencion humana: un job que fallo todos sus retries, una expression FEEL invalida, un mensaje no correlacionado, etc.

REST API unificada

Operate expone una API REST unificada en el path /v2/:

  • GET /v2/process-instances — listar/buscar instancias con filtros
  • GET /v2/process-instances/{key} — detalle de una instancia
  • GET /v2/flownode-instances — nodos ejecutados
  • GET /v2/variables — variables por scope
  • GET /v2/incidents — incidents activos y resueltos
  • POST /v2/process-instances/{key}/cancel — cancelar instancia
  • POST /v2/batch-operations — operaciones masivas

La API es consumida tanto por el frontend React de Operate como por integraciones externas.

Capacidades principales

Visualizacion de instancias

  • Vista de lista con filtros por proceso, version, estado, fecha, variables
  • Vista de diagrama BPMN con overlay de estado: que nodos se ejecutaron, cuales tienen incidents, cuales estan activos
  • Drill-down a instancias individuales con timeline de ejecucion

Inspeccion de variables

  • Variables por scope (proceso, sub-proceso, multi-instance)
  • Historial de cambios de variables
  • Edicion de variables en instancias activas (para debugging)

Resolucion de incidents

  • Lista de incidents con tipo de error y elemento BPMN afectado
  • Resolucion: corregir la causa (editar variable, fix externo) y marcar como resuelto
  • El broker re-intenta el paso que fallo al resolver el incident

Batch operations

  • Cancelar multiples instancias
  • Resolver multiples incidents
  • Migrar instancias entre versiones de proceso

Relaciones

Abierto / gaps

  • Estrategia de retencion y archivado de datos historicos en los indices
  • Modelo de permisos para operaciones destructivas (cancelar, resolver)
  • Performance de queries con join relations en indices grandes (millones de instancias)