Just a second...

Feature support in the Diffusion API

Review this information when designing your clients to determine which APIs provide the functionality you require.

Features are sets of capabilities provided by the Diffusion™ API. Some features are not supported or not fully supported in some APIs.

The Diffusion libraries also provide capabilities that are not exposed through their APIs. Some of these capabilities can be configured.

Note: The Python client currently implements limited capabilities. See the Python API documentation for details.
Table 1. Capabilities provided by the Diffusion client libraries
Capability JavaScript® Apple® Android™ Java™ .NET C
Connecting
Connect to the Diffusion server Supported Supported Supported Supported Supported Supported
Cascade connection through multiple transports Supported Not supported Supported Supported Not supported Not supported
Connect asynchronously Supported Supported Supported Supported Supported Supported
Connect synchronously Not supported Not supported Supported Supported Supported Supported
Connect using a URL-style string as a parameter Not supported Supported Supported Supported Supported Supported
Connect using individual parameters Supported Not supported Supported Supported Not supported Supported
Connect securely Supported Supported Supported Supported Supported Supported
Configure SSL context or behavior Supported Supported Supported Supported Supported Not supported
Connect through an HTTP proxy Not supported Supported Supported Supported Supported Not supported
Connect through a load balancer Supported Supported Supported Supported Supported Supported
Pass a request path to a load balancer Supported Supported Supported Supported Not supported Supported
Reconnecting
Reconnect to the Diffusion server Supported Supported Supported Supported Supported Supported
Configure a reconnection timeout Supported Supported Supported Supported Supported Supported
Define a custom reconnection strategy Supported Supported Supported Supported Supported Supported
Resynchronize message streams on reconnect Supported Supported Supported Supported Supported Supported
Abort reconnect if resynchronization fails Supported Supported Supported Supported Supported Supported
Maintain a recovery buffer of messages on the client to resend to the Diffusion server on reconnect Supported Supported Supported Supported Supported Supported
Configure the client-side recovery buffer Not supported Supported Supported Supported Supported Supported
Detect disconnections by monitoring activity Supported Supported Supported Supported Supported Supported
Detect disconnections by using TCP state Supported Supported Supported Supported Supported Supported
Ping the Diffusion server Supported Supported Supported Supported Supported Supported
Change the principal used by the connected client session Supported Supported Supported Supported Supported Supported
Receiving data from topics
Subscribe to a topic or set of topics Supported Supported Supported Supported Supported Supported
Receive data as a value stream Supported Supported Supported Supported Supported Supported
Receive data as content Supported Supported Supported Supported Supported Supported
Fetch the state of a topic Supported Supported Supported Supported Supported Supported
Managing topics
Create a topic Supported Supported Supported Supported Supported Supported
Create a slave topic Supported Supported Supported Supported Supported Supported
Create/update/query time series topics Supported Supported Supported Supported Supported Supported
Create a topic and set initial value Supported Supported Supported Supported Supported Supported
Create a topic from a topic specification Supported Supported Supported Supported Supported Supported
Create a topic from topic details Supported Supported Supported Supported Supported Supported
Create a topic with metadata Supported Supported Supported Supported Supported Supported
Listen for topic events (including topic has subscribers and topic has zero subscribers) Not supported Supported Supported Supported Supported Not supported
Receive topic notifications Supported Supported Supported Supported Supported Supported
Delete a topic Supported Supported Supported Supported Supported Supported
Delete a branch of the topic tree Supported Supported Supported Supported Supported Supported
Set an automatic topic removal policy Supported Supported Supported Supported Supported Supported
Updating topics
Update a topic Supported Supported Supported Supported Supported Supported
Perform exclusive updates Supported Supported Supported Supported Supported Supported
Perform non-exclusive updates Supported Supported Supported Supported Supported Not supported
Managing subscriptions
Subscribe or unsubscribe another client to a topic Supported Supported Supported Supported Supported Supported
Subscribe or unsubscribe another client to a topic based on session properties Supported Supported Supported Supported Supported Not supported
Handling subscriptions to routing topics Not supported Not supported Supported Supported Supported Not supported
Handling subscriptions to missing topics Supported Supported Supported Supported Supported Supported
Request-response messaging
Send a request to a path Supported Supported Supported Supported Supported Supported
Send a request to a client session Supported Supported Supported Supported Supported Supported
Send a request to a set of client sessions based on session properties Supported Supported Supported Supported Supported Supported
Respond to requests sent to a session Supported Supported Supported Supported Supported Supported
Respond to requests sent to a path Supported Supported Supported Supported Supported Supported
Managing security
Authenticate client sessions and assign roles to client sessions Supported Not supported Supported Supported Supported Supported
Configure how the Diffusion server authenticates client sessions and assign roles to client sessions Supported Not supported Supported Supported Supported Supported
Configure the roles assigned to anonymous sessions and named sessions Supported Not supported Supported Supported Supported Supported
Configure the permissions associated with roles assigned to client sessions Supported Not supported Supported Supported Supported Supported
Grant permissions to a principal using topic ownership Supported Supported Supported Supported Supported Supported
Managing other clients
Receive notifications about client session events including session properties Supported Not supported Supported Supported Supported Supported
Get the properties of a specific client session Supported Not supported Supported Supported Supported Supported
Update user-defined session properties of a client session or set of sessions Supported Not supported Supported Supported Supported Supported
Receive notifications about client queue events Not supported Not supported Supported Supported Supported Not supported
Conflate and throttle clients Not supported Supported Supported Supported Supported Not supported
Close a client session Not supported Supported Supported Supported Supported Not supported
Other capabilities
Flow control Not supported Not supported Supported Supported Supported Supported