All Versions
10
Latest Version
Avg Release Cycle
22 days
Latest Release
355 days ago

Changelog History

  • v2.3.1 Changes

    June 22, 2025

    Introduction

    πŸš€ This is release v2.3.1 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 14.1.2+, 24.03+, or Coherence 14.1.1.2206.4+, 14.1.2.0.+ Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.23.+

    πŸ“¦ > NOTE: Due to CVE's in core Go packages (golang.org/x/net in particular), the minimum Go version for v2.1.0+ is now 1.23. If you wish to use a go version < 1.12, you can use V2.0.0 of the client.

    go get github.com/oracle/coherence-go-client/v2@latest
    

    ⚑️ Updates / New Features - v2.3.1

    • ⚑️ This is a minor update to clean up leaked gomega dependencies and remove them from the main go.mod file
    • πŸš€ There are no API changes in this release

    πŸ› Bug Fixes

    • N/A

    ⬆️ Upgrading from v1.2.2

    ⚑️ If you were previously using v1.2.2 then you will need to update your import statements to specify:

    "github.com/oracle/coherence-go-client/v2/coherence"
    

    instead of

    "github.com/oracle/coherence-go-client/coherence"
    

    πŸ’₯ Breaking Changes

    • N/A

    What's Changed

    Full Changelog : v2.3.0...v2.3.1

  • v2.3.0 Changes

    June 16, 2025

    Introduction

    πŸš€ This is release v2.3.0 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 14.1.2+, 24.03+, or Coherence 14.1.1.2206.4+, 14.1.2.0 Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.23.+

    πŸ“¦ > NOTE: Due to CVE's in core Go packages (golang.org/x/net in particular), the minimum Go version for v2.1.0+ is now 1.23. If you wish to use a go version < 1.12, you can use V2.0.0 of the client.

    go get github.com/oracle/coherence-go-client/v2@latest
    

    ⚑️ Updates / New Features - v2.3.0

    • βž• Add the EntrySetFilterWithComparator function which allows sorting of results using a comparator, when retrieving entry set when using a filter
    • βž• Added the extractors.Comparator interface and extractors.ExtractorComparator function to support the above.
    • Example:

      age:=extractors.Extract[int]("age")fmt.Println("Retrieve the people between the age of 17 and 21 and order by age ascending")ch:=coherence.EntrySetFilterWithComparator(ctx,namedMap,filters.Between(age,17,21),extractors.ExtractorComparator(age,true))forresult:=rangech{ifresult.Err!=nil{panic(result.Err) }fmt.Printf("Key: %v, Value: %s\n",result.Key,result.Value.String()) }

    Note: This feature is only available when connecting to Coherence server versions CE 25.03+ and commercial 14.1.2.0+.
    Note: the entries are sorted internally on the gRPC proxy to avoid excessive memory usage, but you need to be careful when running this operation against NamedCaches with large number of entries.

    Examples

    • βž• Added a new example to show using a custom Comparator and custom EntryProcessor. See Go client examples for more information

    πŸ› Bug Fixes

    • Harden the reconenction logic when retrieving streamed data via various EntrySet*, Values* and Keys* operations

    ⬆️ Upgrading from v1.2.2

    ⚑️ If you were previously using v1.2.2 then you will need to update your import statements to specify:

    "github.com/oracle/coherence-go-client/v2/coherence"
    

    instead of

    "github.com/oracle/coherence-go-client/coherence"
    

    πŸ’₯ Breaking Changes

    • N/A

    What's Changed

    πŸ†• New Contributors

    Full Changelog : v2.2.0...v2.3.0

  • v2.3.0-rc2 Changes

    May 29, 2025

    Introduction

    πŸš€ This is release v2.3.0-rc2 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 14.1.2+, 24.03+, or Coherence 14.1.1.2206.4+, 14.1.2.0 Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.23.+

    πŸ“¦ > NOTE: Due to CVE's in core Go packages (golang.org/x/net in particular), the minimum Go version for v2.1.0+ is now 1.23. If you wish to use a go version < 1.12, you can use V2.0.0 of the client.

    go get github.com/oracle/coherence-go-client/v2@v2.3.0-rc2
    

    ⚑️ Updates / New Features - v2.3.0-rc2

    • βž• Add the EntrySetFilterWithComparator function which allows sorting of results using a comparator, when retrieving entry set when using a filter
    • βž• Added the extractors.Comparator interface and extractors.ExtractorComparator function to support the above.
    • Example:

      age:=extractors.Extract[int]("age")fmt.Println("Retrieve the people between the age of 17 and 21 and order by age ascending")ch:=coherence.EntrySetFilterWithComparator(ctx,namedMap,filters.Between(age,17,21),extractors.ExtractorComparator(age,true))forresult:=rangech{ifresult.Err!=nil{panic(result.Err) }fmt.Printf("Key: %v, Value: %s\n",result.Key,result.Value.String()) }

    Note: This feature is only available when connecting to Coherence server versions CE 25.03+ and commercial 14.1.2.0+.
    Note: the entries are sorted internally on the gRPC proxy to avoid excessive memory usage, but you need to be careful
    when running this operation against NamedCaches with large number of entries.

    Examples

    • βž• Added a new example to show using a custom Comparator and custom EntryProcessor. See Go client examples for more information

    πŸ› Bug Fixes

    • Harden the reconenction logic when retrieving streamed data via various EntrySet*, Values* and Keys* operations

    ⬆️ Upgrading from v1.2.2

    ⚑️ If you were previously using v1.2.2 then you will need to update your import statements to specify:

    "github.com/oracle/coherence-go-client/v2/coherence"
    

    instead of

    "github.com/oracle/coherence-go-client/coherence"
    

    πŸ’₯ Breaking Changes

    • N/A

    What's Changed - rc2

    Full Changelog : v2.2.0...v2.3.0-rc2

  • v2.3.0-rc1 Changes

    May 21, 2025

    Introduction

    πŸš€ This is release v2.3.0-rc1 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 14.1.2+, 24.03+, or Coherence 14.1.1.2206.4+, 14.1.2.0 Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.23.+

    πŸ“¦ > NOTE: Due to CVE's in core Go packages (golang.org/x/net in particular), the minimum Go version for v2.1.0+ is now 1.23. If you wish to use a go version < 1.12, you can use V2.0.0 of the client.

    go get github.com/oracle/coherence-go-client/v2@v2.3.0-rc1
    

    ⚑️ Updates / New Features - v2.3.0-rc1

    • βž• Add the EntrySetFilterWithComparator function which allows sorting of results using a comparator, when retrieving entry set when using a filter
    • βž• Added the extractors.Comparator interface and extractors.ExtractorComparator function to support the above.
    • Example:

      age:=extractors.Extract[int]("age")fmt.Println("Retrieve the people between the age of 17 and 21 and order by age ascending")ch:=coherence.EntrySetFilterWithComparator(ctx,namedMap,filters.Between(age,17,21),extractors.ExtractorComparator(age,true))forresult:=rangech{ifresult.Err!=nil{panic(result.Err) }fmt.Printf("Key: %v, Value: %s\n",result.Key,result.Value.String()) }

    Note: This feature is only available when connecting to Coherence server versions CE 25.03+ and commercial 14.1.2.0+.
    Note: the entries are sorted internally on the gRPC proxy to avoid excessive memory usage, but you need to be careful
    when running this operation against NamedCaches with large number of entries.

    Examples

    • βž• Added a new example to show using a custom Comparator and custom EntryProcessor. See Go client examples for more information

    πŸ› Bug Fixes

    • N/A

    ⬆️ Upgrading from v1.2.2

    ⚑️ If you were previously using v1.2.2 then you will need to update your import statements to specify:

    "github.com/oracle/coherence-go-client/v2/coherence"
    

    instead of

    "github.com/oracle/coherence-go-client/coherence"
    

    πŸ’₯ Breaking Changes

    • N/A

    What's Changed

    Full Changelog : v2.2.0...v2.3.0-rc1

  • v2.2.0 Changes

    May 12, 2025

    Introduction

    πŸš€ This is release v2.2.0 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 14.1.2+, 24.03+, or Coherence 14.1.1.2206.4+, 14.1.2.0 Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.23.+

    πŸ“¦ > NOTE: Due to CVE's in core Go packages (golang.org/x/net in particular), the minimum Go version for v2.1.0+ is now 1.23.

    If you wish to use a go version < 1.12, you can use V2.0.0 of the client.

    ⚑️ Updates / New Features

    • πŸ‘Œ Improve the way the Go client logs messages. (thanks to @mdelapenya for his suggestion in #123

      • You can now configure the logging level via the COHERENCE_LOG_LEVEL environment variable. The default logging level is INFO which will show connection information on startup. You can set to ERROR which will only show any error messages and minimize the output. Available log levels in increasing verbosity are:
      • ERROR
      • WARNING
      • INFO
      • DEBUG
      • ALL
      • Note: Setting the log level to ALL will generate large numbers of detailed messages and should only be used for specialized debugging
    • βž• Added support and CI/CD tests for latest CE and commercial patches

    πŸ› Bug Fixes

    • N/A

    ⬆️ Upgrading from v1.2.2

    ⚑️ If you were previously using v1.2.2 then you will need to update your import statements to specify:

    "github.com/oracle/coherence-go-client/v2/coherence"
    

    instead of

    "github.com/oracle/coherence-go-client/coherence"
    

    πŸ’₯ Breaking Changes

    • N/A

    What's Changed

    Full Changelog : v2.1.0...v2.2.0

  • v2.1.0 Changes

    March 19, 2025

    Introduction

    πŸš€ This is release v2.1.0 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 14.1.2+, 24.03+, or Coherence 14.1.1.2206.4+, 14.1.2.0 Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.23.+

    πŸš€ > NOTE: Due to CVE's in core Go packages (golang.org/x/net in particular), the minimum Go version this release is now 1.23.

    If you wish to use a go version < 1.12, you can use V2.0.0 of the client.

    ⚑️ Updates / New Features

    • βž• Added an explain/ trace example
    • βž• Added support for latest CE and commercial patches and release
    • ⚑️ Updated to require Go 1.23 as a minimum
    • ⚑️ Updated various dependencies to address various Go CVE's
    • βž• Added Go 1.24 to CI/CD

    πŸ› Bug Fixes

    • πŸ›  Fix failing index test

    ⬆️ Upgrading from v1.2.2

    ⚑️ If you were previously using v1.2.2 then you will need to update your import statements to specify:

    "github.com/oracle/coherence-go-client/v2/coherence"
    

    instead of

    "github.com/oracle/coherence-go-client/coherence"
    

    πŸ’₯ Breaking Changes

    • N/A

    What's Changed

    Full Changelog : v2.0.0...v2.1.0

  • v2.0.0 Changes

    December 23, 2024

    Introduction

    πŸš€ This is release v2.0.0 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 14.1.2+, 24.03+, or Coherence 14.1.1.2206.4+, 14.1.2.0 Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.19.+

    ⚑️ Updates / New Features

    • βž• Added support for new internal gRPC v1 API in CE 24.09, CE 14.1.2 and commercial 14.1.2 and above. No changes are required in code, the Go client will automatically detect the new version and is backwardly compatible with existing supported versions . This version hardens event processing and adds support for proper implementation queues and other future protocols
    • βž• Added the ability to specify a pruneFactor (defaults to 0.8 or 80%) for a near cache. This indicates the percentage of the total number of units that will remain after the cache manager prunes the near cache(i.e. this is the "low watermark" value)
    • 🐎 The minimum TTL for near cache is now 1/4 second. This change was made to bring the client into parity with other clients and to improve the performance of the expiry operation in a near cache. You will received an error if you try to set the TTL < 1/4 second
    • ⚑️ Updated Queue API - This update provides a more stable API and adds support for the following queue types

      • Queue - a simple queue which stores data in a single partition and is limited to approx 2GB of storage
      • PagedQueue - a queue which distributes data over the cluster and is only limited by the cluster capacity
      • Dequeue - a simple double-ended queue that stores data in a single partition
    • Harden the connection check and resolver lookup on connection failover

    ⚑️ > Note: The queue API has changed and you will need to update your code. See breaking changes below.

    ⬆️ Upgrading from v1.2.2

    ⚑️ If you were previously using v1.2.2 then you will need to update your import statements to specify:

    "github.com/oracle/coherence-go-client/v2/coherence"
    

    instead of

    "github.com/oracle/coherence-go-client/coherence"
    

    πŸ’₯ Breaking Changes

    Queues

    • πŸš€ In this release, the queues API has been rewritten based upon the above internal gRPC v1 API. This was done to improve reliability, and prepare for support for other protocols in the future and Queues were affected.
This means that Queues in v2.0.0+ of the coherence-go-client it will only work against CE 24.09+ or Commercial 14.1.2.0+ Coherence versions
    • If you wish to use the old queue API <v2.0.0 , it will only work against Coherence CE 24.03

    Other Breaking Changes

    To ensure compatibility with other Coherence API's, the following functions now return channels of StreamedEntry[K, R] rather than StreamedValue[R]. You will need to change any code that uses the following API's:

    • InvokeAllFilter[K comparable, V any, R any] - now returns <-chan *StreamedEntry[K, R]
    • InvokeAllKeys[K comparable, V any, R any] - now returns <-chan *StreamedEntry[K, R]

    πŸ› Bug Fixes

    • πŸ›  Fixed an issue where the resolve would not resolve addresses correctly on failover

    πŸ“š Documentation

    Getting Started

    go get github.com/oracle/coherence-go-client/v2@v2.0.0
    

    What's Changed

    Full Changelog : v1.2.2...v2.0.0

  • v2.0.0-rc3 Changes

    December 13, 2024

    Introduction

    πŸš€ This is release v2.0.0-rc3 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    πŸš€ > Note: this is a release candidate only and functionality may be changes before the official v2.0.0 release.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 24.03+, or Coherence 14.1.1.2206.4+ Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.19.+

    ⚑️ Updates / New Features

    Since v2.0.0-rc2

    • ⚑️ Optimize the near cache expiry logic. This change means the minimum time to set TTL for is 1/4 second to be on parity with other clients

    ⚑️ Other Update

    • βž• Added support for new internal gRPC v1 API in CE 24.09 and commercial 14.1.2 and above. No changes are required in code, the Go client will automatically detect the new version and is backwardly compatible with existing supported versions . This version hardens event processing and adds support for proper implementation queues and other future protocols
    • βž• Added the ability to specify a pruneFactor (defaults to 0.8 or 80%) for a near cache. This indicates the percentage of the total number of units that will remain after the cache manager prunes the near cache(i.e. this is the "low watermark" value)
    • 🐎 The minimum TTL for near cache is now 1/4 second. This change was made to bring the client into parity with other clients and ti improve the performance of the expiry operation in a near cache. You will received an error if you try to set the TTL < 1/4 second
    • ⚑️ Updated Queue API - This update provides a more stable API and adds support for the following queue types

      • Queue - a simple queue which stores data in a single partition and is limited to approx 2GB of storage
      • PagedQueue - a queue which distributes data over the cluster and is only limited by the cluster capacity
      • Dequeue - a simple double-ended queue that stores data in a single partition
    • Harden the connection check and resolver lookup on connection failover

    ⚑️ > Note: The queue API has changed and you will need to update your code. See breaking changes below.

    πŸ’₯ Breaking Changes

    Queues

    • πŸš€ In this release, the queues API has been rewritten based upon the above internal gRPC v1 API. This was done to improve reliability, and prepare for support for other protocols in the future and Queues were affected.
This means that Queues in v2.0.0+ of the coherence-go-client it will only work against CE 24.09+ or Commercial 14.1.2.0+ Coherence versions
    • If you wish to use the old queue API <v2.0.0 , it will only work against Coherence CE 24.03

    Other Breaking Changes

    To ensure compatibility with other Coherence API's, the following functions now return channels of StreamedEntry[K, R] rather than StreamedValue[R]. You will need to change any code that uses the following API's:

    • InvokeAllFilter[K comparable, V any, R any] - now returns <-chan *StreamedEntry[K, R]
    • InvokeAllKeys[K comparable, V any, R any] - now returns <-chan *StreamedEntry[K, R]

    πŸ› Bug Fixes

    • πŸ›  Fixed an issue where the resolve would not resolve addresses correctly on failover

    πŸ“š Documentation

    Getting Started

    go get github.com/oracle/coherence-go-client/v2@v2.0.0-rc2
    

    What's Changed

    🌲 Full Change log : v1.2.2...v2.0.0-rc3

  • v2.0.0-rc2 Changes

    December 10, 2024

    Introduction

    πŸš€ This is release v2.0.0-rc2 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    πŸš€ > Note: this is a release candidate only and functionality may be changes before the official v2.0.0 release.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 24.03+, or Coherence 14.1.1.2206.4+ Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.19.+

    ⚑️ Updates / New Features

    Since v2.0.0-rc1

    • Attempt to harden the connection check and resolver lookup on connection failover.

    ⚑️ Other Update

    • βž• Added support for new internal gRPC v1 API in CE 24.09 and commercial 14.1.2 and above. No changes are required in code, the Go client will automatically detect the new version and is backwardly compatible with existing supported versions . This version hardens event processing and adds support for proper implementation queues and other future protocols.
    • βž• Added the ability to specify a pruneFactor (defaults to 0.8 or 80%) for a near cache. This indicates the percentage of the total number of units that will remain after the cache manager prunes the near cache(i.e. this is the "low watermark" value)
    • 🐎 The minimum TTL for near cache is now 1/4 second. This change was made to bring the client into parity with other clients and ti improve the performance of the expiry operation in a near cache. You will received an error if you try to set the TTL < 1/4 second
    • ⚑️ Updated Queue API - This update provides a more stable API and adds support for the following queue types
      • Queue - a simple queue which stores data in a single partition and is limited to approx 2GB of storage.
      • PagedQueue - a queue which distributes data over the cluster and is only limited by the cluster capacity.
      • Dequeue - a simple double-ended queue that stores data in a single partition

    ⚑️ > Note: The queue API has changed and you will need to update your code. See breaking changes below.

    πŸ’₯ Breaking Changes

    Queues

    • πŸš€ In this release, the queues API has been rewritten based upon the above internal gRPC v1 API. This was done to improve reliability, and prepare for support for other protocols in the future and Queues were affected.
This means that Queues in v2.0.0+ of the coherence-go-client it will only work against CE 24.09+ or Commercial 14.1.2.0+ Coherence versions
    • If you wish to use the old queue API <v2.0.0 , it will only work against Coherence CE 24.03

    Other Breaking Changes

    To ensure compatibility with other Coherence API's, the following functions now return channels of StreamedEntry[K, R] rather than StreamedValue[R]. You will need to change any code that uses the following API's:

    • InvokeAllFilter[K comparable, V any, R any] - now returns <-chan *StreamedEntry[K, R]
    • InvokeAllKeys[K comparable, V any, R any] - now returns <-chan *StreamedEntry[K, R]

    πŸ› Bug Fixes

    • πŸ›  Fixed an issue where the resolve would not resolve addresses correctly on failover

    πŸ“š Documentation

    Getting Started

    go get github.com/oracle/coherence-go-client/v2@v2.0.0-rc2
    

    What's Changed

    🌲 Full Change log : v1.2.2...v2.0.0-rc2

  • v2.0.0-rc1 Changes

    December 05, 2024

    Introduction

    πŸš€ This is release v2.0.0-rc1 of the Coherence Go Client, an API for accessing Coherence via a native Go client.

    πŸš€ > Note: this is a release candidate only and functionality may be changes before the official v2.0.0 release.

    Requirements

    • πŸ”§ Coherence CE 22.06.4+, 24.03+, or Coherence 14.1.1.2206.4+ Commercial edition with a configured gRPCProxy. (Always ensure you are using the latest Coherence available patch.)
    • Go 1.19.+

    ⚑️ Updates / New Features

    • βž• Added support for new internal gRPC v1 API in CE 24.09 and commercial 14.1.2 and above. No changes are required in code, the Go client will automatically detect the new version and is backwardly compatible with existing supported versions . This version hardens event processing and adds support for proper implementation queues and other future protocols.
    • βž• Added the ability to specify a pruneFactor (defaults to 0.8 or 80%) for a near cache. This indicates the percentage of the total number of units that will remain after the cache manager prunes the near cache(i.e. this is the "low watermark" value)
    • ⚑️ Updated Queue API - This update provides a more stable API and adds support for the following queue types
      • Queue - a simple queue which stores data in a single partition and is limited to approx 2GB of storage.
      • PagedQueue - a queue which distributes data over the cluster and is only limited by the cluster capacity.
      • Dequeue - a simple double-ended queue that stores data in a single partition

    ⚑️ > Note: The queue API has changed and you will need to update your code. See breaking changes below.

    πŸ’₯ Breaking Changes

    Queues

    • πŸš€ In this release, the queues API has been rewritten based upon the above internal gRPC v1 API. This was done to improve reliability, and prepare for support for other protocols in the future and Queues were affected.
This means that Queues in v2.0.0+ of the coherence-go-client it will only work against CE 24.09+ or Commercial 14.1.2.0+ Coherence versions
    • If you wish to use the old queue API <v2.0.0 , it will only work against Coherence CE 24.03

    Other Breaking Changes

    To ensure compatibility with other Coherence API's, the following functions now return channels of StreamedEntry[K, R] rather than StreamedValue[R]. You will need to change any code that uses the following API's:

    • InvokeAllFilter[K comparable, V any, R any] - now returns <-chan *StreamedEntry[K, R]
    • InvokeAllKeys[K comparable, V any, R any] - now returns <-chan *StreamedEntry[K, R]

    πŸ› Bug Fixes

    • πŸ›  Fixed an issue where the resolve would not resolve addresses correctly on failover

    πŸ“š Documentation

    Getting Started

    go get github.com/oracle/coherence-go-client/v2@v2.0.0-rc1
    

    What's Changed

    🌲 Full Change log : v1.2.2...v2.0.0-rc1