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
Property | Type | Required | Description |
---|---|---|---|
bindingVersion | string | No | Binding 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
servers:
stompServer:
url: stomp://broker.example.com:61613
protocol: stomp
bindings:
stomp:
bindingVersion: '0.1.0'
Production STOMP Server
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
servers:
developmentStomp:
url: stomp://localhost:61613
protocol: stomp
description: Development STOMP server
bindings:
stomp:
bindingVersion: '0.1.0'
Secure STOMP Server
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
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
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
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
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
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
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
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
servers:
singleStomp:
url: stomp://api.example.com
protocol: stomp
bindings:
stomp:
bindingVersion: '0.1.0'
Multi-Server Deployment
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
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
Popular STOMP Brokers
- 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