logo_smallAxellero.io

RabbitMQ

Publish messages to RabbitMQ queues and exchanges in Axellero workflows.

RabbitMQ Node

Publish messages to RabbitMQ queues and exchanges in Axellero workflows. Currently supports message publishing with AMQP authentication.

Available Operations

  • Publish: Send messages to RabbitMQ exchanges and queues

Current Capabilities

This implementation supports message publishing only. Message consumption and queue management operations are not supported.

Connection Configuration

ParameterTypeRequiredDescription
hostTEXTYesRabbitMQ server hostname
portINTNoRabbitMQ server port (default: 5672)
usernameTEXTYesAMQP username for authentication
passwordTEXTYesAMQP password for authentication
vhostTEXTNoVirtual host (default: /)
{
  "host": "rabbitmq.example.com",
  "port": 5672,
  "username": "{{ctx.consts.RABBITMQ_USERNAME}}",
  "password": "{{ctx.consts.RABBITMQ_PASSWORD}}",
  "vhost": "production"
}

Message Publishing

ParameterTypeRequiredDescription
exchangeTEXTYesExchange name
routingKeyTEXTNoRouting key for message routing
queueTEXTNoDirect queue name (alternative to exchange)
payloadTEXTYesMessage content

Exchange Publishing

{
  "exchange": "events",
  "routingKey": "user.signup",
  "payload": "{{ctx.nodes.eventFormatter.outputs.userEvent}}"
}

Direct Queue Publishing

{
  "queue": "notifications",
  "payload": "{\"type\": \"email\", \"recipient\": \"{{ctx.user.email}}\", \"message\": \"{{ctx.vars.notificationText}}\"}"
}

Topic Exchange with Routing

{
  "exchange": "user-events",
  "routingKey": "{{ctx.user.attrs.orgId}}.{{ctx.vars.eventType}}",
  "payload": "{{ctx.nodes.activityLogger.outputs.activityData}}"
}

Workflow Integration

Use workflow context to construct exchange names and message content:

{
  "exchange": "{{ctx.workspace_slug}}-events",
  "routingKey": "{{ctx.vars.department}}.{{ctx.vars.eventType}}",
  "payload": "{{ctx.nodes.messageFormatter.outputs.formattedMessage}}"
}

Response Format

Success Response

{
  "success": true,
  "exchange": "events",
  "routingKey": "user.signup",
  "messageId": "msg_12345"
}

Error Response

{
  "success": false,
  "error": "Failed to publish message to exchange"
}

Use Cases

  • Event Publishing: Publish workflow events for downstream processing
  • Notification Distribution: Send notification messages to processing queues
  • Data Broadcasting: Distribute processed data to multiple consumers
  • Task Distribution: Send work items to processing queues