Name | Description | Introduced in Version |
---|---|---|
Python - Support Alpine Linux |
The Solace Python API now supports Alpine Linux, allowing developers to build and deploy applications using the API on this platform.
|
1.9.0 |
Python - Provide Ability to NACK a Specific AD Message and Force Re-Delivery |
The Messaging API for Python now supports message NACK.
|
1.9.0 |
Python API - Available for ARM Linux |
The Python API now supports development and deployment on platforms that use ARM
processors.
|
1.8.0 |
Python - API Support To Compress Payload |
The Python API now supports end-to-end payload compression. Sessions can now be optionally
configured to compress the payload of every message on a message-by-message basis. While
enabling this feature severely impacts API performance for small messages and significantly
impacts API performance for larger messages, it has a positive impact on Event Broker
performance and message-spool usage.
|
1.8.0 |
Python - Distributed Tracing - Context Propagation |
Enables adding and extracting tracing metadata attached to events published and received by
the Solace Python API.
|
1.7.0 |
Python - Support for Mac M1 |
The Python API now supports development and deployment on platforms that use MAC M-series
processors.
|
1.7.0 |
Python - Update API License Agreement |
We have simplified the API license text and clarified that distributing works containing
the Solace APIs is allowed.
|
1.7.0 |
Python - Support PubSub+ Cache Use Cases |
This enhancement adds PubSub+ Cache support in the Python API. This allows applications
using the Python API to interact with PubSub+ Cache.
|
1.6.0 |
Python API - Support for Partitioned Queues |
This enhancement adds support for Partitioned Queues to the API. Partitioned Queues expand
PubSub+ to provide deterministic, ordered, and non-exclusive message delivery for customers to
scale the number of consumers when publishing ordered datasets. The ordered datasets are keyed
to ensure all events in the dataset are sent to the same consumer without mis-ordering events.
This feature requires PubSub+ Event Broker support. Support for this feature is planned to
be introduced to the Event Broker around April 30, 2023 in release 10.4.0.
|
1.5.0 |
Python API - Add Way to Update Oauth Token on Reconnection |
This feature allows an application to automatically update the OAuth token without the need
to create a new session the next time the API tries to reconnect.
|
1.5.0 |
Python - Local/Session Transaction Support |
This feature adds support for Transacted Sessions in the API. This will enable client
applications to group multiple message send and/or receive operations together in single,
atomic units known as local transactions. Each transacted Session can support a single series
of transactions.
|
1.4.0 |
Python - Handle Unsolicited Broker Termination |
The API will be able to handle unsolicited service interruption for receiving or publishing
situations where there are permanent or long ongoing network interruptions. The API will now
handle these scenarios more gracefully by notifying the application when this occurs.
|
1.4.0 |
OAuth/OIDC Support in Python API |
OAuth / OpenID Connect has been added as a method of authenticating and authorizing clients
connecting to the PubSub+ Event Broker using the SMF protocol. Clients using Solace APIs will
be able to present a token as a credential during client login. This enables clients to
integrate with modern identity and access management systems.
|
1.3.0 |
Update Python API to Use Contemporary Python Version and Contemporary Python Tagging |
Changed tagging procedure to properly package for PyPi.
|
1.2.1 |
Support for Kerberos Client Authentication |
Added Kerberos as a client authentication scheme.
|
1.2.0 |
Additional Direct Receiver Back Pressure Strategies |
Added "drop latest" and "drop oldest" strategies to the Direct Receiver Backpressure
buffer. This gives more options for what to do with messages received when the message buffer
fills.
|
1.2.0 |
Replay After Replication Group Message ID |
Applications can now replay messages following the message-ID of the last message which
they successfully processed.
The feature uses "replication group message ID", which uniquely identifies messages within
an HA group and Replication/DR group of brokers. The broker includes this ID in all guaranteed
messages it delivers to the consumer. Consuming applications can extract and save this ID
along with the message payload, and then use it later to initiate a replay.
This is a more "fine-grained" way to start a replay than from date-and-time, and is ideal
in cases where the last message-ID successfully processed is known by the application (e.g.
recovery from a database crash).
To initiate replay after message-ID from an application, both the PubSub+ Event Broker and
PubSub+ Event API must be upgraded. The following versions introduce support for replay after
message-ID:
Broker:
* PubSub+ Event Broker version 9.9.0
Messaging API:
* PubSub+ Messaging API for Java(JCSMP) version 10.11.0
* PubSub+ Messaging API for Java version 1.0.0
* PubSub+ Messaging API for C version 7.18.0
* PubSub+ Messaging API for JavaRTO version 7.18.0
* PubSub+ Messaging API for .NET version 10.12.0
* PubSub+ Messaging API for JavaScript version 10.7.0
* PubSub+ Messaging API for Python version 1.2.0
|
1.2.0 |
Direct Messaging Request/Reply |
The API now supports the request/reply messaging pattern with synchronous and asynchronous
functions.
|
1.1.0 |
Structured Data Type Support for Publish and Consume |
The API can now consume messages published with SDTMap and SDTStream and publish messages
setting SDTMap and SDTStream.
|
1.1.0 |
Message Replay Support |
The replay of messages from the replay log is now possible via the API. This is for
temporal replay only. Replay from the replication group ID will be included in a future
release.
|
1.1.0 |
Message Interoperability with other Solace Message Format (SMF) APIs Containing XMLContent |
Messages published with other Solace APIs populating XMLContent are now consumable by this
API.
|
1.1.0 |
Python API MVP (GA) Direct & Guaranteed Messaging |
This is the initial release of the PubSub+ Messaging API for Python. Solace created this
API to support the rich Python ecosystem and help developers create applications in Python
that take advantage of the broad features of PubSub+.
This version contains a feature set that allows for common messaging patterns like
publish/subscribe using Direct Messaging and Guaranteed Messaging. This API provides support
for all deployments of PubSub+ across software, appliance, and cloud.
Future versions of the Python API will introduce more features as Solace builds out the
roadmap for this API.
The Python API 1.0.0 supports:
* Connection management to PubSub+ event brokers
* Addition and removal of topic subscriptions
* Sending and receiving Direct and Guaranteed Messages
* Message compression
* Use of Selectors
The Python API 1.0.0 does not support the following features:
* Request/Reply message exchange pattern
* Message Replay
* Structured data types that allow interoperability between various architectures and
programming languages
* PubSub+ Cache Client API support
* Session Transactions
* XA Transactions
* Queue browsing
* Kerberos authentication
|
1.0.0 |
Reference Number | Description | Resolved in Version |
---|---|---|
SOL-123208 |
PublishReceipt.message returns the wrong object.
It incorrectly returns _SolaceMessage instead of OutboundMessage.
|
1.9.0 |
SOL-95434 |
In rare cases, Python applications that use guaranteed messaging with significant session
creation may experience an increase in memory usage over time.
|
1.8.0 |
SOL-91034 |
When a persistent publisher terminates it may block for 10 minutes before receiving pending
publisher receipts.
|
1.6.0 |
SOL-84875 |
When the endpoint is configured with max-delivered-unacked-msgs-per-flow less than 255, the
Messaging API performance may be degraded. This is particularly noticeable when
max-delivered-unacked-msgs-per-flow is 1, as acknowledgements will only be sent once per
second.
Workaround:
Messaging API for C: set SOLCLIENT_FLOW_PROP_MAX_UNACKED_MESSAGES equal to the value
configured on the endpoint.
Messaging API for .NET: set FlowProperties.MaxUnackedMessages equal to the value configured
on the endpoint.
Messaging API for Python and Go: No workaround is available.
|
1.4.1 |
SOL-43623 |
Attempting to canonicalize very large messages on non-Linux platforms (1MB+) via print or
other means that invoke __str__() may not complete. When this occurs, the MessagingService
will become unresponsive.
|
1.4.0 |
SOL-54295 |
After a service is disconnected, calling is_running(), is_terminating(), or is_terminated()
may return the incorrect state for the Publisher or Receiver.
|
1.4.0 |
SOL-67463 |
The default value for PERSISTENT_DMQ_ELIGIBLE should be 'true', to be consistent with other
Solace Messaging APIs.
|
1.4.0 |
SOL-77879 |
In rare cases, a persistent receiver may suddenly stop receiving messages. The receiver
will not recover on its own and must be terminated.
|
1.4.0 |
SOL-51786 |
The Class of Service feature is not supported in the Solace PubSub+ Messaging API for
Python.
|
1.3.0 |
SOL-50784 |
The Python API fails to automatically re-bind to endpoints after reconnecting.
|
1.2.0 |
Reference Number | Description | Introduced in Version |
---|---|---|
SOL-95357 |
The API has been updated to decode “400 Invalid Queue or Topic Endpoint Durability” broker response.
For more information, see:
C API
.Net API
JavaRTO API
Go API
Python API
Javascript API
JCSMP API
JMS API
|
1.9.0 |
SOL-91687 |
The C, .Net and Python APIs no longer bundles OpenSSL libraries on Linux platforms. For all
other platforms, the bundled OpenSSL libraries have been updated to OpenSSL 3.0. For more
information, refer to the Supported
Environments page in our customer documentation.
|
1.8.0 |
SOL-81764 |
The Python API now requires macOS 11(Big Sur) or newer.
|
1.7.0 |
SOL-53041 |
Setting basic-username (via solace.messaging.authentication.scheme.basic.username) will no
longer set the client username used for client-certificate authentication. Applications are
now required to set client-certificate-username using
solace.messaging.authentication.client-cert.username.
|
1.2.0 |
Reference Number | Description |
---|---|
SOL-45233 |
A large number of overlapping subscriptions in a single messaging service with a high rate
of incoming matching messages from the broker may result in degraded performance.
|
SOL-46210 |
Attempting to disconnect the messaging service while it is in connecting state will cause
the Python API to ungracefully shut down.
|
SOL-47413 |
RequestReplyMessagePublisher.terminate() waits until all Future objects created by
RequestReplyMessagePublisher.publish() are complete. All Future objects created and returned
by RequestReplyMessagePublisher.publish() must be completed before terminate() can finish.
Even if terminate has a shorter or zero time, it will block until the outstanding Futures are
complete after the time has elapsed.
Workaround:
The application may choose to implement its own executor to call publish_await_response()
for asynchronous publish. This will return a failure, as expected, on terminate.
|
SOL-81229 |
In rare cases, a transacted receiver may suddenly stop receiving messages. The transacted
service will not recover and the process will need to be terminated.
|
SOL-43633 |
Messaging metrics within the Python API may be slightly out of sync (delayed) compared to
the actual number of messages sent and received.
|