TIBCO Messaging API

Enterprise messaging API supporting EMS (Enterprise Message Service) and FTL (Fast Transport Layer).

AsyncAPI Specification

tibco-messaging-asyncapi.yml Raw ↑
asyncapi: 2.6.0
info:
  title: TIBCO Messaging API
  version: '1.0'
  description: >-
    Enterprise messaging API supporting TIBCO Enterprise Message Service (EMS)
    and FTL (TIBCO FTL) for reliable, high-performance messaging. Supports
    JMS-compatible publish-subscribe and point-to-point messaging patterns
    for real-time data distribution across enterprise applications.
  contact:
    name: TIBCO Support
    url: https://support.tibco.com
  license:
    name: TIBCO License
    url: https://www.tibco.com/legal/terms-of-use
  termsOfService: https://www.tibco.com/legal/terms-of-use
externalDocs:
  description: TIBCO Enterprise Message Service Documentation
  url: https://docs.tibco.com/products/tibco-enterprise-message-service
servers:
  ems-production:
    url: ssl://messaging.cloud.tibco.com:7243
    protocol: jms
    description: TIBCO EMS Production Server (SSL)
    security:
      - userPassword: []
  ems-development:
    url: tcp://messaging.cloud.tibco.com:7222
    protocol: jms
    description: TIBCO EMS Development Server
    security:
      - userPassword: []
  ftl-production:
    url: https://messaging.cloud.tibco.com:8585
    protocol: https
    description: TIBCO FTL Realm Server
    security:
      - bearerAuth: []
defaultContentType: application/json
channels:
  orders/created:
    description: >-
      Channel for newly created order events. Producers publish order
      creation notifications and consumers receive them for downstream
      processing such as fulfillment, inventory, and billing.
    subscribe:
      operationId: receiveOrderCreated
      summary: Receive order created events
      description: >-
        Subscribe to receive notifications when new orders are created.
      message:
        $ref: '#/components/messages/OrderCreated'
      tags:
        - name: orders
    publish:
      operationId: publishOrderCreated
      summary: Publish order created event
      description: >-
        Publish a notification that a new order has been created.
      message:
        $ref: '#/components/messages/OrderCreated'
      tags:
        - name: orders
  orders/updated:
    description: >-
      Channel for order status update events. Consumers receive
      notifications when order status changes (e.g., shipped, delivered).
    subscribe:
      operationId: receiveOrderUpdated
      summary: Receive order update events
      message:
        $ref: '#/components/messages/OrderUpdated'
      tags:
        - name: orders
    publish:
      operationId: publishOrderUpdated
      summary: Publish order update event
      message:
        $ref: '#/components/messages/OrderUpdated'
      tags:
        - name: orders
  inventory/changed:
    description: >-
      Channel for inventory change events. Published when stock levels
      change due to orders, returns, or manual adjustments.
    subscribe:
      operationId: receiveInventoryChanged
      summary: Receive inventory change events
      message:
        $ref: '#/components/messages/InventoryChanged'
      tags:
        - name: inventory
    publish:
      operationId: publishInventoryChanged
      summary: Publish inventory change event
      message:
        $ref: '#/components/messages/InventoryChanged'
      tags:
        - name: inventory
  notifications/alerts:
    description: >-
      Channel for system alert notifications. Used for broadcasting
      operational alerts, threshold violations, and system health events.
    subscribe:
      operationId: receiveAlert
      summary: Receive system alerts
      message:
        $ref: '#/components/messages/Alert'
      tags:
        - name: notifications
    publish:
      operationId: publishAlert
      summary: Publish system alert
      message:
        $ref: '#/components/messages/Alert'
      tags:
        - name: notifications
  integration/events:
    description: >-
      General-purpose integration event channel for inter-application
      messaging. Supports custom event types with flexible payloads.
    subscribe:
      operationId: receiveIntegrationEvent
      summary: Receive integration events
      message:
        $ref: '#/components/messages/IntegrationEvent'
      tags:
        - name: integration
    publish:
      operationId: publishIntegrationEvent
      summary: Publish integration event
      message:
        $ref: '#/components/messages/IntegrationEvent'
      tags:
        - name: integration
  data/stream:
    description: >-
      High-throughput data streaming channel for real-time data
      distribution using TIBCO FTL transport layer.
    subscribe:
      operationId: receiveDataStream
      summary: Receive data stream messages
      message:
        $ref: '#/components/messages/DataStreamMessage'
      tags:
        - name: streaming
    publish:
      operationId: publishDataStream
      summary: Publish data stream message
      message:
        $ref: '#/components/messages/DataStreamMessage'
      tags:
        - name: streaming
components:
  securitySchemes:
    userPassword:
      type: userPassword
      description: EMS username and password authentication
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 bearer token for FTL API access
  messages:
    OrderCreated:
      name: OrderCreated
      title: Order Created Event
      summary: Notification that a new order has been created
      contentType: application/json
      headers:
        type: object
        properties:
          correlationId:
            type: string
            description: Correlation ID for message tracking
          messageType:
            type: string
            const: OrderCreated
          timestamp:
            type: string
            format: date-time
          source:
            type: string
            description: Source system identifier
      payload:
        $ref: '#/components/schemas/OrderEvent'
    OrderUpdated:
      name: OrderUpdated
      title: Order Updated Event
      summary: Notification that an order status has changed
      contentType: application/json
      headers:
        type: object
        properties:
          correlationId:
            type: string
          messageType:
            type: string
            const: OrderUpdated
          timestamp:
            type: string
            format: date-time
          source:
            type: string
      payload:
        $ref: '#/components/schemas/OrderStatusUpdate'
    InventoryChanged:
      name: InventoryChanged
      title: Inventory Changed Event
      summary: Notification that inventory levels have changed
      contentType: application/json
      headers:
        type: object
        properties:
          correlationId:
            type: string
          messageType:
            type: string
            const: InventoryChanged
          timestamp:
            type: string
            format: date-time
      payload:
        $ref: '#/components/schemas/InventoryEvent'
    Alert:
      name: Alert
      title: System Alert
      summary: System alert notification for operational monitoring
      contentType: application/json
      headers:
        type: object
        properties:
          correlationId:
            type: string
          messageType:
            type: string
            const: Alert
          priority:
            type: integer
            minimum: 0
            maximum: 9
          timestamp:
            type: string
            format: date-time
      payload:
        $ref: '#/components/schemas/AlertEvent'
    IntegrationEvent:
      name: IntegrationEvent
      title: Integration Event
      summary: General-purpose integration event for inter-application messaging
      contentType: application/json
      headers:
        type: object
        properties:
          correlationId:
            type: string
          messageType:
            type: string
          timestamp:
            type: string
            format: date-time
          source:
            type: string
          replyTo:
            type: string
            description: Reply destination for request-reply patterns
      payload:
        $ref: '#/components/schemas/GenericEvent'
    DataStreamMessage:
      name: DataStreamMessage
      title: Data Stream Message
      summary: High-throughput data stream message via FTL
      contentType: application/json
      headers:
        type: object
        properties:
          sequenceNumber:
            type: integer
            description: Message sequence number for ordering
          timestamp:
            type: string
            format: date-time
          contentName:
            type: string
            description: FTL content matcher name
      payload:
        $ref: '#/components/schemas/StreamPayload'
  schemas:
    OrderEvent:
      type: object
      required:
        - orderId
        - customerId
        - totalAmount
      properties:
        orderId:
          type: string
          description: Unique order identifier
        customerId:
          type: string
          description: Customer identifier
        items:
          type: array
          items:
            type: object
            properties:
              productId:
                type: string
              productName:
                type: string
              quantity:
                type: integer
                minimum: 1
              unitPrice:
                type: number
                format: double
          description: Order line items
        totalAmount:
          type: number
          format: double
          description: Total order amount
        currency:
          type: string
          description: Currency code (ISO 4217)
        orderDate:
          type: string
          format: date-time
          description: When the order was placed
    OrderStatusUpdate:
      type: object
      required:
        - orderId
        - previousStatus
        - newStatus
      properties:
        orderId:
          type: string
          description: Order identifier
        previousStatus:
          type: string
          enum:
            - created
            - confirmed
            - processing
            - shipped
            - delivered
            - cancelled
          description: Previous order status
        newStatus:
          type: string
          enum:
            - created
            - confirmed
            - processing
            - shipped
            - delivered
            - cancelled
          description: New order status
        updatedAt:
          type: string
          format: date-time
        reason:
          type: string
          description: Reason for status change
    InventoryEvent:
      type: object
      required:
        - productId
        - changeType
        - quantity
      properties:
        productId:
          type: string
          description: Product identifier
        productName:
          type: string
          description: Product name
        warehouseId:
          type: string
          description: Warehouse identifier
        changeType:
          type: string
          enum:
            - increment
            - decrement
            - adjustment
          description: Type of inventory change
        quantity:
          type: integer
          description: Quantity changed
        previousLevel:
          type: integer
          description: Stock level before change
        currentLevel:
          type: integer
          description: Stock level after change
        timestamp:
          type: string
          format: date-time
    AlertEvent:
      type: object
      required:
        - alertId
        - severity
        - message
      properties:
        alertId:
          type: string
          description: Alert unique identifier
        severity:
          type: string
          enum:
            - info
            - warning
            - error
            - critical
          description: Alert severity level
        message:
          type: string
          description: Alert message
        source:
          type: string
          description: Source system or component
        category:
          type: string
          description: Alert category
        details:
          type: object
          additionalProperties: true
          description: Additional alert details
        timestamp:
          type: string
          format: date-time
    GenericEvent:
      type: object
      required:
        - eventType
      properties:
        eventType:
          type: string
          description: Event type identifier
        data:
          type: object
          additionalProperties: true
          description: Event payload data
        metadata:
          type: object
          additionalProperties: true
          description: Event metadata
    StreamPayload:
      type: object
      properties:
        recordType:
          type: string
          description: Type of data record
        data:
          type: object
          additionalProperties: true
          description: Record data
        timestamp:
          type: string
          format: date-time
          description: Record timestamp