Solace¶
Overview¶
Solace is a complete event streaming and management platform providing high-performance messaging, event routers, and message brokers. It accommodates many protocols and APIs, supporting event-driven applications, microservices, and IoT use cases.
Data Model¶
Core Concepts¶
graph TB
subgraph "Solace Message Broker"
LL[Line Layer]
VLAN[Virtual LAN]
QNET[Queue Network]
QUEUES[Queues]
end
subgraph "Protocols"
AMQP[AMQP 1.0]
MQTT[MQTT 3.1.1]
REST[HTTP REST]
WS[WebSocket]
JMS[JMS]
end
subgraph "Publishers"
PUB[Publishers]
end
subgraph "Subscribers"
SUB[Subscribers]
end
PUB --\ AMQP 1.0, MQTT 3.1.1, REST, HTTP, JMS --\ LL
LL --\ VLAN
VLAN --\ QNET
QUEUES --\ SUB
Message Structure¶
- Header: Routing, destination, and metadata
- Body: Payload and serialization format
- Properties: Key-value pairs for custom attributes
- Replies: Destination queue and correlation
Message Format¶
{
"destination": "order/queue",
"headers": {
"priority": "5",
"correlationId": "abc-123",
"expiration": "2025-01-11T16:56:59Z",
"replyTo": "response/queue"
},
"properties": {
"businessProcess": "order-fulfillment",
"userId": "user-987",
"version": "1.2"
},
"body": {
"orderId": "order-123",
"customerId": "cust-456",
"products": [
{
"productId": "prod-321",
"quantity": 1
}
],
"total": 199.99
}
}
Architecture Overview¶
Single Broker Architecture¶
graph TB
subgraph "Solace Broker"
ROUTER[Message Router]
VIRT[Virtual Routers]
PROXY[Proxy Services]
TENANT[Multi-Tenant Nats]
end
subgraph "Edge Services"
MQTT[MQTT Gateways]
AMQP[AMQP Gateways]
REST[HTTP Gateways]
end
ROUTER -- \ VIRT
PROXY --\ VIRT
TENANT --\ VIRT
MQTT --\ ROUTER
AMQP --\ ROUTER
REST --\ ROUTER
Multi-Region Replication¶
graph TB
subgraph "Region 1"
R1[Solace Instance 1]
LB[Load Balancer]
end
subgraph "Region 2"
R2[Solace Instance 2]
end
subgraph "Region 3"
R3[Solace Instance 3]
end
R1 --| replication |-- R2
R2 --| replication |-- R3
R3 --| replication |-- R1
LB --| traffic |-- R1
LB --| traffic |-- R2
LB --| traffic |-- R3
Target Operating Model (TOM)¶
Without High Availability¶
Single Broker Setup¶
Component | Specification | Function |
---|---|---|
Solace Broker | 1 instance | Central message routing |
Storage | DRAM, SSD | Message persistence |
Network | 1Gbps+ | External connectivity |
Protocols | AMQP, MQTT | Gateway support |
Resource Requirements¶
Resource | Minimum | Recommended | Use |
---|---|---|---|
CPU | 4 cores | 16+ cores | Throughput processes |
Memory | 8GB | 32GB+ | Execution management |
Storage | 200GB | 1TB+ | Persistent messaging |
Network | 1Gbps | 10Gbps+ | Brokering traffic |
Configuration¶
# Solace broker configuration
operatingEnvironment:
logging:
defaultLogLevel: INFO
accessLogLevel: ALL
servicesConfig:
restDeliveryPoint:
enabled: true
maxInFlightReq:
client: 100
maxRateMbps: 10000
With High Availability¶
Cluster Configuration¶
Component | Specification | Function |
---|---|---|
Solace Instances | 3+ instances | Redundancy and failover |
Load Balancer | Layer 7/4 | Distribute traffic |
Region Replication | Multi-region setup | Traffic resilience |
Resource Requirements¶
Resource | Minimum | Recommended | Use |
---|---|---|---|
CPU | 16 cores | 32+ cores | Load distribution |
Memory | 32GB | 64GB+ | Buffer caches |
Storage | 1TB | 10TB+ | Data consistency |
Network | 10Gbps | 40Gbps+ | Extended reach |
Deployment¶
# Solace HA deployment
highAvailability:
enabled: true
replication:
region: primary
loadBalancing:
reverseProxy:
enabled: true
endpoints:
manager: true
vpn: multi-tenant
security:
ssl:
enabled: true
protocols:
tls13: true
tls12: true
authorization:
permissions:
mode: multi-tenant certified
Pros and Cons¶
Pros¶
Performance & Scalability¶
- High Throughput: Solace supports millions of events per second
- Reliable: Sustains low-latency through high peaks
- Versatile: Handles various transports (WAN, LAN)
Flexibility & Protocol Support¶
- Dynamic Protocols: AMQP, MQTT, RESTful, and JMS
- Integration: Meshed with enterprise applications
- Virtualization: Seamless tenant control
Security & Administration¶
- Encryption: Standard SSL and TLS
- Management: Rich tools and dashboards
- Control: Role-based access, granular policies
Cons¶
Cost Dimensions¶
- Licensing: Usage-based spending
- Integration: Complex setups require investment
- Subscription: Cloud or on-prem options
Complexity & Limitations¶
- Learning Curve: Extensive setup and management
- Monitoring: Requires specialized underpinnings
- Advanced Features: Tiered access may alter accessibility
Compatibility Limits¶
- Legacy Apps: Constraints on older systems
- Standard Changes: Non-native protocols mapped
Best Practices¶
Deployment Compliance¶
- Topology Design
- Structure adaptable meshes
-
Evaluate failover mapping
-
Secure Protocols
- Implement layer encryption
- Utilize access control lists
Performance Optimization¶
- Resource Allocation
- Match CPU to throughput demand
-
Scale memory per tenant requirements
-
Network Buffers
- Harden scale-ready layers
- Provision edge redundancy
Monitoring & Reporting¶
- Set potential drift audits
- Enable regular diagnostic monitoring
Ideal Use Cases¶
- IoT Communication: Device-agnostic protocols
- Enterprise Integration: Fusion of legacy with modern
- Microservices: Decoupled, pliant architecture
- Hybrid Cloud: Seamless bi-distributed functions