Skip to content

STOMP Server Binding v0.1.0

The STOMP server binding defines server-level configurations for STOMP connections in AsyncAPI. This binding configures how the STOMP server handles connections, manages resources, and provides infrastructure-level settings for text-oriented messaging.

Overview

STOMP server bindings configure the server-side behavior and infrastructure settings for STOMP connections. These configurations apply to all STOMP connections handled by the server and define server-level policies and capabilities for text-based messaging.

Server Properties

PropertyTypeRequiredDescription
bindingVersionstringNoBinding version (defaults to 0.1.0)

Property Details

Binding Version

Specifies the version of the STOMP server binding being used.

Default: 0.1.0

Note: This is the only property currently defined in the STOMP server binding schema. The binding is designed to be minimal and focused on the core STOMP protocol capabilities, with room for future expansion.

STOMP Server Concepts

Server Infrastructure

STOMP servers provide the infrastructure for text-based messaging:

  • Connection Management: Handling multiple concurrent STOMP connections
  • Resource Allocation: Managing server resources for STOMP connections
  • Load Balancing: Distributing connections across multiple server instances
  • Scaling: Horizontal and vertical scaling of STOMP infrastructure

Server Capabilities

STOMP servers typically provide these capabilities:

  • Connection Limits: Maximum number of concurrent connections
  • Message Throughput: Messages per second handling capacity
  • Destination Management: Topic and queue destination handling
  • Protocol Support: STOMP protocol version support

Server Configuration

Server-level configurations include:

  • Security Settings: SSL/TLS configuration, authentication policies
  • Performance Tuning: Connection timeouts, buffer sizes, thread pools
  • Monitoring: Connection metrics, health checks, logging
  • Integration: Integration with other services and protocols

Examples

Basic Server Configuration

yaml
servers:
  stompServer:
    url: stomp://broker.example.com:61613
    protocol: stomp
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Production STOMP Server

yaml
servers:
  productionStomp:
    url: stomp://stomp.example.com
    protocol: stomp
    description: Production STOMP server with load balancing
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Development STOMP Server

yaml
servers:
  developmentStomp:
    url: stomp://localhost:61613
    protocol: stomp
    description: Development STOMP server
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Secure STOMP Server

yaml
servers:
  secureStomp:
    url: stomps://secure.example.com:61614
    protocol: stomps
    description: Secure STOMP server with SSL/TLS
    security:
      - bearerAuth: []
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Load Balanced STOMP Server

yaml
servers:
  loadBalancedStomp:
    url: stomp://lb.example.com
    protocol: stomp
    description: Load balanced STOMP server cluster
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Multi-Region STOMP Infrastructure

yaml
servers:
  usWestStomp:
    url: stomp://us-west.stomp.example.com
    protocol: stomp
    description: US West Coast STOMP server
    bindings:
      stomp:
        bindingVersion: '0.1.0'
  
  usEastStomp:
    url: stomp://us-east.stomp.example.com
    protocol: stomp
    description: US East Coast STOMP server
    bindings:
      stomp:
        bindingVersion: '0.1.0'
  
  euStomp:
    url: stomp://eu.stomp.example.com
    protocol: stomp
    description: European STOMP server
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Use Cases

Real-Time Chat Application Server

yaml
servers:
  chatStomp:
    url: stomp://chat.example.com
    protocol: stomp
    description: STOMP server for real-time chat application
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Live Dashboard Server

yaml
servers:
  dashboardStomp:
    url: stomp://dashboard.example.com
    protocol: stomp
    description: STOMP server for live dashboard updates
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Enterprise Messaging Server

yaml
servers:
  enterpriseStomp:
    url: stomp://enterprise.example.com
    protocol: stomp
    description: STOMP server for enterprise messaging
    security:
      - apiKey: []
    bindings:
      stomp:
        bindingVersion: '0.1.0'

IoT Device Management Server

yaml
servers:
  iotStomp:
    url: stomp://iot.example.com
    protocol: stomp
    description: STOMP server for IoT device communication
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Financial Trading Platform Server

yaml
servers:
  tradingStomp:
    url: stomp://trading.example.com
    protocol: stomp
    description: STOMP server for real-time trading data
    security:
      - apiKey: []
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Best Practices

Server Infrastructure

  • Use load balancers for high availability
  • Implement proper SSL/TLS configuration
  • Deploy servers in multiple geographic regions
  • Monitor server performance and resource usage

Connection Management

  • Implement connection pooling and limits
  • Handle connection lifecycle events properly
  • Implement proper error handling and recovery
  • Use appropriate timeout and keepalive settings

Security Configuration

  • Use secure STOMP connections (STOMP over SSL/TLS)
  • Implement proper authentication and authorization
  • Configure access control for destinations
  • Monitor for security threats and vulnerabilities

Performance Optimization

  • Optimize server resource allocation
  • Implement connection limits and throttling
  • Use appropriate buffer sizes and timeouts
  • Monitor and optimize message throughput

Monitoring and Logging

  • Implement comprehensive server monitoring
  • Log connection events and errors
  • Monitor server health and performance metrics
  • Set up alerts for critical server issues

Scalability Planning

  • Design for horizontal scaling
  • Implement proper session management
  • Use stateless server design when possible
  • Plan for geographic distribution

Integration Considerations

  • Integrate with existing authentication systems
  • Connect with monitoring and logging infrastructure
  • Implement proper backup and disaster recovery
  • Consider integration with other messaging systems

STOMP Server Deployment Patterns

Single Server Deployment

yaml
servers:
  singleStomp:
    url: stomp://api.example.com
    protocol: stomp
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Multi-Server Deployment

yaml
servers:
  primaryStomp:
    url: stomp://primary.example.com
    protocol: stomp
    bindings:
      stomp:
        bindingVersion: '0.1.0'
  
  secondaryStomp:
    url: stomp://secondary.example.com
    protocol: stomp
    bindings:
      stomp:
        bindingVersion: '0.1.0'

Microservices Architecture

yaml
servers:
  chatStomp:
    url: stomp://chat.example.com
    protocol: stomp
    bindings:
      stomp:
        bindingVersion: '0.1.0'
  
  notificationStomp:
    url: stomp://notifications.example.com
    protocol: stomp
    bindings:
      stomp:
        bindingVersion: '0.1.0'
  
  analyticsStomp:
    url: stomp://analytics.example.com
    protocol: stomp
    bindings:
      stomp:
        bindingVersion: '0.1.0'

STOMP Brokers and Servers

  • Apache ActiveMQ: Enterprise-grade messaging broker with STOMP support
  • RabbitMQ: High-performance message broker with STOMP plugin
  • Apache Apollo: Lightweight STOMP broker
  • HornetQ: High-performance messaging from JBoss

STOMP Server Features

  • Connection Management: Handle multiple concurrent connections
  • Destination Routing: Route messages to topics and queues
  • Message Persistence: Store messages for durability
  • Security: Authentication and authorization
  • Monitoring: Connection and message metrics

Server Configuration Options

  • Port Configuration: Default STOMP port is 61613
  • SSL/TLS Support: Secure connections on port 61614
  • Authentication: Username/password, certificates, tokens
  • Access Control: Destination-level permissions
  • Performance Tuning: Connection limits, timeouts, buffers

Changelog

Version 0.1.0

  • Initial release with basic STOMP server binding support
  • Support for server-level STOMP configurations
  • Minimal configuration focused on core STOMP capabilities
  • Schema validation for binding version
  • Reserved for future server-specific STOMP configurations