Saltar a contenido

Connectors

Framework de integracion de Camunda 8 que permite conectar workflows con sistemas externos. Ofrece un SDK con dos modelos: OutboundConnectorFunction (sincrono, basado en jobs) e InboundConnectorExecutable (asincrono, event-driven). El runtime opera como Zeebe job workers.

Contexto

Los Connectors resuelven el problema de integracion entre los workflows BPMN y los sistemas externos (APIs, messaging, bases de datos, servicios cloud). Sin connectors, cada integracion requeriria escribir un job worker custom. El framework estandariza este patron y provee ~40 conectores listos para usar.

SDK: dos modelos de connector

OutboundConnectorFunction (sincrono, job-based)

  • Implementa la interfaz OutboundConnectorFunction con un metodo execute(OutboundConnectorContext)
  • Se activa cuando el broker asigna un job al worker — el modelo clasico poll-and-complete
  • El connector recibe las variables del job, ejecuta la logica (llamada HTTP, publicar mensaje Kafka, etc.) y retorna el resultado
  • Ejecucion sincrona: el job queda bloqueado hasta que el connector responde
  • Ideal para: llamadas API, operaciones CRUD, transformaciones de datos
BPMN Service Task → Zeebe Job → Connector Runtime (poll) → OutboundConnectorFunction.execute() → resultado al broker

InboundConnectorExecutable (asincrono, event-driven)

  • Implementa InboundConnectorExecutable con metodos activate() y deactivate()
  • No espera un job — se activa al deployar un proceso y permanece escuchando eventos externos
  • Cuando un evento llega (webhook HTTP, mensaje Kafka, evento de Slack, etc.), el connector lo correlaciona con la instancia de proceso correcta via message correlation del broker
  • Ejecucion asincrona y de larga duracion: el connector vive mientras el proceso este desplegado
  • Ideal para: webhooks, suscripciones a colas, listeners de eventos
Evento externo → InboundConnectorExecutable → PublishMessage al broker → correlation con instancia esperando

Runtime como Zeebe job workers

El Connector Runtime es una aplicacion Spring Boot que:

  • Se registra como job worker en el cluster Zeebe para los outbound connectors
  • Cada tipo de connector declara su type (ej: io.camunda:http-json:1) que matchea con el job type del service task BPMN
  • Para inbound connectors, el runtime gestiona el lifecycle de activacion/desactivacion
  • Puede correr como proceso standalone o embebido en otros servicios

Conectores disponibles (~40)

El catalogo incluye conectores para multiples categorias:

Categoria Ejemplos
Cloud AWS Lambda, AWS SQS, AWS SNS, Google Drive, Google Sheets
Messaging Kafka, RabbitMQ, Amazon SQS
Comunicacion Slack, Microsoft Teams, SendGrid, Twilio
HTTP REST generico (JSON), GraphQL, SOAP
Bases de datos SQL generico
Automation GitHub, GitLab, Camunda (operate on processes)
AI OpenAI, Amazon Bedrock

Cada connector se configura desde el modelador BPMN — las propiedades del service task definen endpoint, credenciales (via secrets), payload, etc.

Inbound connectors y message correlation

Los inbound connectors usan el mecanismo de message correlation de Zeebe para vincular eventos externos con instancias de proceso:

  • El connector publica un mensaje con un messageName y una correlationKey
  • El broker correlaciona el mensaje con instancias que tienen un message catch event con el mismo nombre y key
  • Si no hay instancia esperando, el mensaje se puede almacenar temporalmente (TTL configurable)
  • Este patron permite integraciones event-driven sin polling

Repositorio separado

Los connectors viven en un repositorio independiente: camunda/connectors

  • Separado del monorepo principal (camunda/camunda)
  • Tiene su propio ciclo de release
  • El SDK y el runtime son las dependencias compartidas; cada connector es un modulo independiente
  • Terceros pueden crear connectors custom usando el SDK

Relaciones

Abierto / gaps

  • Modelo de gestion de secrets para credenciales de connectors en produccion
  • Estrategia de retry y error handling para outbound connectors fallidos
  • Performance de inbound connectors bajo alta concurrencia de eventos