Documentation Index

Fetch the complete documentation index at: https://navigator.apprentice.io/llms.txt

Use this file to discover all available pages before exploring further.

Event Queue Endpoint - MQTT

Prev Next
This content is currently unavailable in Ja - 日本語. You are viewing the default (English) version.

Tempo MQTT Integration — Outbound Publishing

Overview

Tempo can publish platform events to an external MQTT broker that you (the partner) operate. Tempo acts purely as an MQTT client — it connects, publishes, and disconnects. You provide the broker, credentials, and subscribe to the topics you care about.

MQTT is one of three outbound transports Tempo supports (MQTT, RabbitMQ, REST); this document covers MQTT only.

Connection & Authentication

Aspect Value
Role Tempo is the publishing client; you host the broker
URL schemes mqtt, mqtts, tcp, tls, ws, wss
TLS Use mqtts://host:8883 for TLS; mqtt://host:1883 for plaintext
Authentication Basic — username + password in the MQTT CONNECT packet
Connect timeout 10 seconds
Publish QoS 2 (exactly-once)
Connection model Connect → publish one message → disconnect, per event
Credentials Configured per endpoint; stored encrypted on our side and never logged

Topics we publish to

Each event publishes to a topic derived from the event's type and trigger:

{event_type}/{event_trigger}

…with spaces replaced by underscores and the whole string lowercased. For standard events this topic is automatically derived and is not free-form configurable.

Concrete topics

Domain Topic
Batch run status batch/batch_run_status
Procedure run state procedure_run/procedure_run_state
Procedure step execution procedure_run/step_execution
Material inventory movement material_inventory/material_inventory_movement
Custom event (deprecated) custom_event/custom_event
Exception sync exception/exception_sync
Printing — material sublot printing/printing_material_sublot
Printing — dispense printing/printing_dispense
Printing — material output (primary) printing/printing_material_output_primary
Printing — material output (by-product) printing/printing_material_output_bi_product
Printing — material output (intermediate) printing/printing_material_output_intermediate
Printing — equipment printing/printing_equipment
Printing — create kit printing/printing_create_kit
Printing — sample printing/printing_sample
Printing — load array printing/printing_load_array
Printing — create label printing/printing_create_label

Which of these are active depends on the event configurations enabled for your integration — you only receive events for triggers that have been configured to publish to your endpoint.

Payload

The message body is the event's JSON object (UTF-8), specific to the event type (e.g. a batch-run-status object, an inventory-movement object). Only printing event types can have their payload modified.

Metadata is attached only when the event configuration has metadata-in-payload enabled. When enabled, it is merged into the message under a top-level Metadata key:

{
  "...event-specific fields...": "...",
  "Metadata": {
    "OrganizationID": "…",
    "OrganizationName": "…",
    "OrganizationURL": "…",
    "EventType": "Batch",
    "EventTrigger": "batch_run_status",
    "Subscriber": "<your endpoint name>",
    "CreatedBy": "<user email or 'System Auto Execution'>",
    "SourceEnvironment": "<environment>",
    "CreationDateTime": "2026-06-18T00:00:00.000Z"
  }
}

When metadata-in-payload is not enabled, the body is just the raw event object with no Metadata wrapper.

What you need to provide

  • Broker URL + port and scheme (TLS preferred: mqtts://…:8883)
  • MQTT username + password (basic auth)
  • Subscriptions on your broker for the topics above that correspond to the events you want
  • Confirmation of whether you want the Metadata block included in payloads

Caveats

  • Auth is basic only (username/password); no client-certificate / mutual-TLS auth in the current implementation.
  • Topics for standard events are fixed/auto-derived, not free-form.
  • Tempo publishes at QoS 2; broker durability, retained messages, and persistent sessions are the broker's (your) responsibility.
  • No ordering guarantee is provided across distinct events.