Release Notes: Solace PubSub+ Messaging API for Go, Version 1.8.0
Release History for Solace PubSub+ Messaging API for Go, Version 1.8.0
December 2024

New Features Introduced in Release 1.8.0 and Earlier Releases

This section lists the new features introduced in the Solace PubSub+ Messaging API for Go between releases 1.8.0 and 1.0.0.
NameDescriptionIntroduced in Version
GoLang - Provide Ability to NACK a Specific AD Message and Force Re-delivery
The Messaging API for Go now supports message NACK.
1.8.0
Go - API Support To Compress Payload
The Go 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.7.0
Go - Support For Removing Durable Endpoints
Applications using the Go API can now dynamically add and remove durable endpoints.
1.7.0
Go - Request Reply
The API now supports the request/reply messaging pattern with helper methods to await response from a replier.
1.6.0
Go API - Distributed Tracing - Context Propagation
Enables adding and extracting tracing metadata attached to events published and received by the Solace Go API.
1.5.0
Go API - Update API License Agreement
We have simplified the API license text, and clarified that distributing works containing the Solace APIs is allowed.
1.5.0
Go API - Available for ARM Linux
The Go API now supports development and deployment on platforms that use ARM processors.
1.4.0
Go 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 was introduced to the Event Broker in release 10.4.0.
1.3.0
Go API - Available for Mac M-Series Processors
The GO API now supports development and deployment on platforms that use MAC M-series processors.
1.3.0
Golang 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.2.0
Go - Add Support for Alpine
The API now supports Alpine Linux, allowing developers to build and deploy applications using the API on this platform.
1.1.0
Go API MVP (GA) Direct & Guaranteed Messaging
This is the first release of the PubSub+ Messaging API for Go. Solace created this API to support the growing Go ecosystem and to address customer demand to create applications in Go that can take advantage of the broad features of PubSub+. This API provides support for all deployments of PubSub+ across software, appliance, and cloud.
This version contains a feature set that allows for the common messaging patterns like publish/subscribe using Direct Messaging and Guaranteed Messaging. Future versions of the Go API will introduce more features as Solace builds out the roadmap for this API.
The Go 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
* Message Replay
* Structured data types that allow interoperability between various architectures and programming languages
* Provisioning of persistent (durable) endpoints
* Kerberos authentication
* OAuth 2.0 authentication
The Go API 1.0.0 does not support the following:
* PubSub+ Cache Client API support
* Request/Reply message exchange pattern
* Session Transactions
* XA Transactions
* Queue browsing
1.0.0

Issues Resolved in Release 1.8.0 and Earlier Releases

This section lists the history of resolved issues in the Solace PubSub+ Messaging API for Go between releases 1.8.0 and 1.0.0.
Reference NumberDescriptionResolved in Version
SOL-117431
The PubSubPlus-go-client can cause stack frame exceptions such as invalid pointer on stack. These occur when an application chooses to use multiple goroutines that share a single messaging service to create multiple receivers (direct or persistent) in parallel.
Workaround:
Isolate receiver creation and start to your main goroutine in early versions of pubsubplus-go-client.
1.6.1
SOL-116516
The Go API may attempt an out of bounds write within Open Telemetry methods.
1.6.0
SOL-85837
DirectMessagePublisher instances may return errors on Publish if multiple goroutines are publishing on the same publisher instance at the same time.
1.2.0
SOL-75835
InboundMessage.GetApplicationMessageID() was returning the Application Message Type instead of Application Message ID. The method now returns the Application Message ID as expected.
1.1.0
SOL-68147
Solace PubSub+ Messaging API for Go does not vendor all required packages when using 'go mod vendor'.
1.0.1

Changed Functionality in Release 1.8.0 and Earlier Releases

This section lists the history of changed functionality in the Solace PubSub+ Messaging API for Go between releases 1.8.0 and 1.0.0.
Reference NumberDescriptionIntroduced in Version
SOL-91687
The C, .Net, JavaRTO, Go, and Python APIs no longer bundle 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.7.0
SOL-95357
The API has been updated to decode "400 Invalid Queue or Topic Endpoint Durability" broker response.
For more information, see:
1.7.0
SOL-66702
The API has been updated to decode all broker response codes as of broker version 10.1.1.
1.1.0

Known Issues in Release 1.8.0 and Earlier Releases

This section describes known issues in the Solace PubSub+ Messaging API for Go between releases 1.8.0 and 1.0.0.
Reference NumberDescription
SOL-128034
Due to Go issue 600296, the Solace Go API may terminate due to 'stack split at bad time' on Alpine platforms when running Go runtime v1.22.5 or newer. Solace recommends v1.22.4 or earlier until this issue is resolved in the Go runtime.
For more details, refer to the Release Notes page for the individual Solace Messaging APIs.

Supported Environments