Feature Support in PubSub+ Messaging APIs

The different APIs all support common functionality that is essential for messaging. These APIs evolve over time to meet use-case requirements for client applications, therefore there are slight differences in feature support.

The PubSub+ Messaging API for iOS is a mobile API. For the list of features supported for the iOS API, see iOS API.

Here's a summary of the current support for features; you can use this summary as a comparison to select the messaging API that's right for your requirements. API- or platform-specific features are described on the individual Messaging API pages. The following table shows:

  • A minimum API version where required, otherwise feature support for each API is indicated using the following symbols:
    • Supported—A green check indicates the feature is available in all supported API versions.
    • —A gray cross indicates that the API does not support this feature.
Feature C .NET JavaRTO JCSMP Java JMS JavaScript Node.js Python Go
Direct and Guaranteed Messaging Support

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Request and Reply Messaging

Supported

Supported

Supported

Supported

1.1 and later

Supported

Supported

Supported

Supported

Structured Data Types (SDTs) that Don't Rely on a Specific Architecture or Programming Language

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Logging and Customizing through Property Parameters

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Local Transactions

Supported

Supported

Supported

Supported

Supported

1.4 and later

PubSub+ Cache Client Support

Supported

Supported

Supported

Supported

Supported

Supported

Queue Browsing

Supported

Supported

Supported

Supported

1.2 and later

Supported

Supported

Supported
Topic Dispatch

Supported

Supported

Supported

Supported

Supported

Supported

Supported
Replay

7.18 and later

10.12 and later

7.18 and later

10.11 and later

Supported

10.7 and later

10.7 and later

1.2 and later

Supported

Durable Endpoint Provisioning

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Use Selectors

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Negative Acknowledgments (NACKs)

10.17 and later

Message Compression Support

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

XA Transactions

Supported

OAuth 2.0 Authentication

7.21 and later

10.16 and later

7.21 and later

10.13 and later

1.1 and later

10.13 and later

10.9 and later

10.9 and later

1.3 and later

Supported

OAuth Token Refresh

7.24 and later

10.19 and later

10.3 and later

10.16 and later

1.1 and later

10.10 and later

10.10 and later

1.5 and later

1.2 and later

Kerberos Authentication

Supported

Supported

Supported

Supported

Supported

Supported

1.2 and later

Supported

Distributed Tracing (Context Propagation)

10.17 and later

10.17 and later

Delayed Redelivery

10.18 and later

10.18 and later

Partitioned Queues

7.25 and later

10.20 and later

10.19 and later

10.19 and later

10.13 and later

10.13 and later

1.5 and later

1.3 and later

Feature C .NET JavaRTO JCSMP Java JMS JavaScript Node.js Python Go

For Java, Node.js, Go, Python, and JavaScript APIs, the Durable Endpoint Provisioning feature is implemented using the Missing Resource Strategy.

  • For the Node.js and JavaScript APIs—On consumer start, the Missing Resource Strategy defines the action to take when an endpoint does not exist.
  • For Python, Java, and Go APIs—On receiver start, the Missing Resource Strategy defines the action to take when an endpoint does not exist.
  • For the JavaScript API—To provision queues or topic endpoints on the broker requires version 1.8 of the API or later.

The use of the Missing Resource Strategy also means that you cannot deprovision the endpoints.

Support for Distributed Tracing (Context Propagation)

Context propagation with PubSub+ Messaging APIs is supported by the Solace PubSub+ OpenTelemetry API Libraries. These libraries allow you to inject context into or extract context from PubSub+ event messages.

You deploy the PubSub+ OpenTelemetry API Libraries alongside the PubSub+ Messaging API for the programming language you are using to develop your application. These libraries have dependencies on the OpenTelemetry API (which must also be deployed with your application).

The PubSub+ OpenTelemetry API Libraries support only W3C propagators.

For information about specific libraries and where to get them, see:

Support for Queue Browsing

Client applications can use the PubSub+ Messaging API to look at Guaranteed messages spooled for a queue in the order of oldest to newest without consuming them. For more information about using queue browsing for:

Partitioned Queues

Partitioned queues allow you to easily scale the number of consumer applications in your event mesh. PubSub+ event brokers ensure that all related events are delivered to the same consumer in the correct sequence and can re-balance the event stream when you add or remove consumers.