Workato · Arazzo Workflow

Workato Publish and Verify an Event Message

Version 1.0.0

Publish a message to a topic, then long-poll to consume it back.

1 workflow 1 source API 1 provider
View Spec View on GitHub AgenticAPI ManagementAutomationB2BEmbedded iPaaSEnterpriseIntegrationiPaaSOrchestrationWorkflowArazzoWorkflows

Provider

workato

Workflows

publish-and-consume-event
Publish a message to a topic and consume it back for verification.
Publishes a single message to an event topic, then long-polls the topic starting after the published message ID to confirm delivery.
2 steps inputs: payload, topicId outputs: consumedMessages, publishedMessageId
1
publishMessage
publishMessage
Publish a single message to the topic and capture its message ID.
2
consumeMessages
consumeMessages
Long-poll the topic for up to 30 seconds, reading messages published after the message just sent, to confirm it can be consumed.

Source API Descriptions

Arazzo Workflow Specification

workato-publish-and-consume-event-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Workato Publish and Verify an Event Message
  summary: Publish a message to a topic, then long-poll to consume it back.
  description: >-
    A round-trip validation of an event topic. The workflow publishes a single
    message to the topic, captures its message ID, and then consumes from the
    topic with long polling using that message ID as the cursor — confirming
    the published message can be read back. Every step spells out its request
    inline so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: eventStreamsApi
  url: ../openapi/workato-event-streams-openapi.yml
  type: openapi
workflows:
- workflowId: publish-and-consume-event
  summary: Publish a message to a topic and consume it back for verification.
  description: >-
    Publishes a single message to an event topic, then long-polls the topic
    starting after the published message ID to confirm delivery.
  inputs:
    type: object
    required:
    - topicId
    - payload
    properties:
      topicId:
        type: integer
        description: The unique integer identifier of the event topic.
      payload:
        type: object
        description: The message payload conforming to the topic's schema.
  steps:
  - stepId: publishMessage
    description: Publish a single message to the topic and capture its message ID.
    operationId: publishMessage
    parameters:
    - name: topic_id
      in: path
      value: $inputs.topicId
    requestBody:
      contentType: application/json
      payload: $inputs.payload
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      messageId: $response.body#/message_id
  - stepId: consumeMessages
    description: >-
      Long-poll the topic for up to 30 seconds, reading messages published
      after the message just sent, to confirm it can be consumed.
    operationId: consumeMessages
    parameters:
    - name: topic_id
      in: path
      value: $inputs.topicId
    requestBody:
      contentType: application/json
      payload:
        batch_size: 50
        timeout_secs: 30
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      messages: $response.body#/messages
  outputs:
    publishedMessageId: $steps.publishMessage.outputs.messageId
    consumedMessages: $steps.consumeMessages.outputs.messages