Skip to main content

Solace

Solace event integrations consume messages from a Solace PubSub+ queue or topic and trigger event handlers as each message arrives. Use them for high-performance event streaming in financial services, IoT, and real-time analytics workloads that require guaranteed or direct message delivery.

Creating a Solace events service

  1. Click + Add Artifact in the canvas or click + next to Entry Points in the sidebar.

  2. In the Artifacts panel, select Solace under Event Integration.

  3. In the creation form, fill in the following fields:

    Solace Event Integration creation form

    FieldDescriptionDefault
    Broker URLThe Solace broker URL.smf://localhost:55554
    Message VPNThe message VPN to connect to.default
    DestinationWhether to consume from a Queue or a Topic.Queue

    When Destination is Queue:

    FieldDescriptionDefault
    Queue NameQueue to listen for incoming messages.test-queue
    Session Acknowledgment ModeHow received messages are acknowledged. Options: AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED.AUTO_ACKNOWLEDGE

    When Destination is Topic:

    FieldDescriptionDefault
    Topic NameTopic to listen for incoming messages.test/topic
    Subscriber NameName to use for the subscription.default
    Durable SubscriberWhen enabled, persists the subscription when the client disconnects.
    Session Acknowledgment ModeHow received messages are acknowledged. Options: AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED.AUTO_ACKNOWLEDGE

    Expand Advanced Configurations to set the listener name and authentication method.

    FieldDescriptionDefault
    Listener NameIdentifier for the listener created with this service.solaceListener
    Authentication methodHow to authenticate with the Solace broker. Select Basic Authentication, Kerberos Authentication, or OAuth 2.0 Authentication.Basic Authentication

    Basic Authentication fields:

    FieldDescription
    UsernameUsername for broker authentication.
    PasswordPassword for broker authentication.
    Secure SocketSSL/TLS configuration for a secure connection.

    Kerberos Authentication fields:

    FieldDescriptionDefault
    Service NameKerberos service name.solace
    JAAS Login ContextJAAS login context name.SolaceGSS
    Mutual AuthenticationEnable Kerberos mutual authentication.Enabled
    JAAS Config ReloadEnable automatic JAAS configuration reload.
    Secure SocketSSL/TLS configuration for a secure connection.

    OAuth 2.0 Authentication fields:

    FieldDescriptionDefault
    IssuerOAuth 2.0 issuer identifier URI.https://auth.example.com
    Access TokenOAuth 2.0 access token for authentication.
    OIDC TokenOpenID Connect ID token for authentication.
    Secure SocketSSL/TLS configuration for a secure connection.
  4. Click Create.

  5. WSO2 Integrator opens the service in the Service Designer. The canvas shows the attached listener pill, the destination name pill, and an empty Event Handlers section.

    Service Designer showing the Solace Event Integration canvas

  6. Click + Add Handler to add event handlers.

Service configuration

In the Service Designer, click the Configure icon in the header to open the Solace Event Integration Configuration panel. Select Solace Event Integration in the left panel.

Solace Event Integration Configuration panel — service config and listener URL

The Service Configuration field accepts a record expression that sets the destination and message handling options.

Queue service configuration fields:

FieldDescriptionDefault
queueNameName of the queue to consume from.Required
sessionAckModeMessage acknowledgment mode.AUTO_ACKNOWLEDGE

Topic service configuration fields:

FieldDescriptionDefault
topicNameName of the topic to subscribe to.Required
subscriberNameName to use for the subscription.default
consumerTypeConsumer type for the subscription (DEFAULT or DURABLE).DEFAULT
sessionAckModeMessage acknowledgment mode.AUTO_ACKNOWLEDGE

Listener configuration

In the Solace Event Integration Configuration panel, select solaceListener under Attached Listeners to configure the listener.

FieldDescriptionDefault
NameIdentifier for the listener.solaceListener
UrlThe Solace broker URL in the format <scheme>://[username]:[password]@<host>[:<port>]. Supported schemes: smf (plain-text) and smfs (TLS/SSL). Comma-separate multiple hosts for failover. Default ports: 55555 (standard), 55003 (compression), 55443 (SSL).smf://localhost:55554
Message VPNThe name of the message VPN to connect to.default
AuthAuthentication configuration. Supports basic authentication, Kerberos, and OAuth 2.0. For client certificate authentication, configure the secureSocket.keyStore field.{username: "default"}
Secure SocketSSL/TLS configuration for secure connections.{}
TransactedEnables transacted messaging. When true, messages are sent and received within a transaction context requiring explicit commit or rollback. Must be false for XA transactions.
Client IdClient identifier. If not specified, a unique client ID is auto-generated.
Client DescriptionHuman-readable description of the client connection.
Allow Duplicate Client IdWhether to allow the same client ID across multiple connections.
Enable Dynamic DurablesEnables automatic creation of durable queues and topic endpoints on the broker.
Direct TransportWhen true, uses direct (at-most-once) delivery. When false, uses guaranteed (persistent) delivery. Must be false for transacted sessions.
Direct OptimizedOptimizes message delivery in direct transport mode by reducing protocol overhead. Only applicable when Direct Transport is true.
LocalhostLocal interface IP address to bind for outbound connections.
Connect TimeoutMaximum time in seconds permitted for a JNDI connection attempt. Set to 0 to wait indefinitely.0.0
Read TimeoutMaximum time in seconds permitted for reading a JNDI lookup reply from the host.0.0
Compression LevelZLIB compression level. Valid range is 0–9, where 0 disables compression. Higher values improve compression at the cost of throughput.0
Retry ConfigRetry configuration for connection and reconnection attempts.{}
Additional ValuesKey-value pairs for additional connection configuration.{}

Click + Attach Listener to attach an additional listener to the same service.

Click Save Changes to apply updates.

Event handlers

Adding an event handler

In the Service Designer, click + Add Handler. The Select Handler to Add panel lists onMessage and onError.

onMessage — opens a configuration panel before saving:

onMessage handler configuration panel

OptionDescription
+ Define PayloadDefine the expected content type of the incoming message (e.g., a typed record).

Click Save to add the handler.

onError — added directly without additional configuration.

Handler types

HandlerTriggered whenUse when
onMessageA new message arrives from the queue or topicProcessing incoming messages
onErrorA message retrieval or processing error occursLogging failures and triggering alerts

What's next

  • Kafka — consume messages from Apache Kafka topics
  • RabbitMQ — consume messages from RabbitMQ queues
  • Connections — reuse Solace connection credentials across services