Skip to content

Releases: hazelcast/hazelcast-go-client

v1.0.0

14 Jul 11:22
2f8b2c6
Compare
Choose a tag to compare

Release Notes

This is the first stable release of Hazelcast Go Client. The client was revamped to support Hazelcast 4.x and 5.x and have a more idiomatic API.

Here are the new features and changes since the last preview release.

New features

  • Connection strategy configuration.
  • Load balancer implementation.
  • Map aggregations.
  • Client configuration can be unmarshalled from JSON.

Changes

  • Zero value of hazelcast.Config is the default configuration.
  • Removed Config suffix from configuration sections.
  • Unexported these configuration fields which cannot be unmarshalled from JSON: config.ClusterConfig.SSLConfig.TLSConfig, config.SerializationConfig.GlobalSerializer, config.SerializationConfig.CustomSerializers, config.SerializationConfig.GlobalSerializer, config.SerializationConfig.IdentifiedDataSerializableFactories, config.SerializationConfig.PortableFactories, config.SerializationConfig.ClassDefinitions
  • Changed configuration items which are of type time.Duration to types.Duration in order to support human readable duration values in JSON configuration, such as 5s or 10h.
  • config.ClusterConfig.SmartRouting (default true) is renamed to config.Cluster.Unisocket (default false) in order to support zero value of hazelcast.Config.
  • config.SerializationConfig.BigEndian (default true) is renamed to config.Serialization.LittleEndian (default false) in order to support zero value of hazelcast.Config.
  • Moved config.ClusterConfig.Address to config.Cluster.Network.Addresses.
  • Moved config.ClusterConfig.ConnectionTimeout to config.Cluster.Network.ConnectionTimeout.
  • Moved config.ClusterConfig.SSLConfig to config.Cluster.Network.SSL.
  • Moved Username and Password settings in config.ClusterConfig.SecurityConfig to config.Cluster.Security.Credentials.
  • Renamed config.SerializationConfig.AddPortableFactory function to config.Serialization.SetPortableFactories.
  • Renamed config.SerializationConfig.AddIdentifiedSerializableFactory function to config.Serialization.SetIdentifiedSerializableFactories.
  • Renamed config.SerializationConfig.AddClassDefinition function to config.Serialization.SetClassDefinitions.
  • Idiomatic errors: You can use errors.Is function to check whether an expected error is returned from Go client functions. Check hzerrors/errors.go for the list of errors client functions return.
  • hazelcast.StartNewClient, hazelcast.StartNewClientWithConfig and hazelcast.Shutdown functions take a context.Context parameter.
  • hazelcast.LifecycleStateClientConnected and hazelcast.LifecycleStateClientDisconnected constants are renamed to hazelcast.LifecycleStateConnected and hazelcast.LifecycleStateDisconnected respectively.
  • Introduced hazelcast.EntryEventType type instead of int32 EventType in EntryNotified struct.
  • Unexported hzerrors.ServerError.
  • Renamed map.LockWithLeaseTimeout function to map.LockWithLeaseAndTimeout.
  • Changed the signature of replicatedMap.AddEntryListener to have an extra bool parameter to control including values.
  • Changed the name and signature of queue.AddListener to queue.AddItemListener and to have an extra bool parameter to control including values.
  • Renamed topic.AddListener to topic.AddMessageListener.
  • Removed hazelcast.IndexValidationError. Expect hazelcast.ErrIllegalArgument instead.
  • Changed signature of replicatedMap.PutAll function.

Fixed Issues

  • Hazelcast Cloud integration: The client attempts to connect to internal addresses when the cluster is re-started.
  • Retryable errors.
  • Field names with runes outside of ASCII character range in Portable serialization are encoded as expected.

v1.0.0-preview.4

18 Jun 18:04
Compare
Choose a tag to compare
v1.0.0-preview.4 Pre-release
Pre-release

Release Notes

This is the fourth preview release of Hazelcast Go Client.

Here are the new features and changes since the last preview version.

New features

  • PNCounter distributed data structure,
  • Go context support for all distributed data structures.
  • Reentrant locks for maps.
  • Hazelcast Management Center integration.
  • Hazelcast Cloud integration.
  • External smart client discovery (Requires Hazelcast 4.2 or above).
  • Distributed object event listeners.

Changes

  • All distributed data structure functions require a Go context as the first parameter. Passing nil is as the context is discouraged but allowed.
  • Changed the signature of hazelcast.Map.putAll, so it's a variadic function which takes any number of types.Entry values, instead of taking a []types.Entry. Don't forget to use the spread operator when passing a slice: m.PutAll(ctx, entries...).
  • cluster.Address is now a type based on string.
  • Removed cluster.Member type.
  • hazelcast.List.ToSlice was renamed to hazelcast.List.GetAll.
  • hazelcast.Queue.Iterator was renamed to hazelcast.Queue.GetAll.
  • Exported all fields of types.SimpleEntryView.

Known Issues

  • Hazelcast Cloud integration: The client attempts to connect to internal addresses when the cluster is re-started. This will be fixed before Preview-5.

v1.0.0-preview.3

08 Jun 06:31
d0e21a2
Compare
Choose a tag to compare
v1.0.0-preview.3 Pre-release
Pre-release

Release Notes

This is the third preview release of Hazelcast Go Client.

Here are the new features and changes since the last preview version.

New features

  • Set distributed data structure,

Changes

  • When the client is not ready, it returns hazelcast.ErrClientNotActive instead of hazelcast.ErrClientNotReady.
  • serialization.ClassDefinition is public.

Improvements

  • Memory utilization is improved and number of allocations are decreased.

v1.0.0-preview.2

21 May 15:23
cea917a
Compare
Choose a tag to compare
v1.0.0-preview.2 Pre-release
Pre-release

Release Notes

This is the second preview release of Hazelcast Go client.

Here are the new features and changes since the last preview version.

New features:

  • IList distributed data structure

Changes:

  • hazelcast.ConfigBuilder is removed. Use hazelcast.Config instead.
  • Signatures of serialization functions have changed to remove returned errors. If your serialization code needs to fail, simply panic. Panics are recovered and converted to errors.
  • hzerrors package is public.

Improvements:

  • Serialization performance is increased, especially for large payloads.
  • Memory utilization is improved and number of allocations are decreased.
  • Heartbeat service is enabled.

Fixes:

  • Fixed a regression introduced in Preview 1 which limited the message size to 8KBs.
  • Fixed Non-retryable errors.
  • Destroy function of DSSs removes corresponding proxies from the cache.

v1.0.0-preview.1

07 May 11:01
d60b254
Compare
Choose a tag to compare
v1.0.0-preview.1 Pre-release
Pre-release

Release Notes

This is the first preview release of Hazelcast Go Client for Hazelcast 4.x.

The first preview release of the Go client for Hazelcast 4.x has the following features:

New features

Expect breaking changes in the following areas:

  • Configuration
  • Map lock functions

0.6.0

11 Mar 11:47
9c984d7
Compare
Choose a tag to compare

Breaking Changes

  • None.

New Features

  • None.

Bug Fixes

  • None.

Improvements

  • AWS PrivateLink Compatibility: Hazelcast Cloud Discovery is now also compatible with the AWS PrivateLink feature to provide connectivity between VPCs. #473
  • Entry Loaded Event: When an entry is loaded from the MapLoader, the client now fires an EntryLoaded event. #470

0.5

20 Mar 12:51
afdd370
Compare
Choose a tag to compare
0.5

Breaking Changes

  • Serialization DataInput and PortableReader APIs are changed. They do not return an error anymore. See #426.

New Features

  • Logging Configuration
  • Hazelcast JSON support

Bug Fixes

  • Statistics error for windows is fixed. #448.
  • Data race in PN counter is fixed. #432.
  • Sockets are closed correctly after shutdown. #429.
  • The statistics update process wasn't correct. #402.

Improvements

  • JSON support. #449.
  • Hostnames can be used in addresses. #446.
  • Errors in serialization are simplified for ease of use. #425.
  • Member Attribute changed event is added. #414.
  • Logging levels #393.

0.4

27 Nov 08:51
Compare
Choose a tag to compare
0.4

Upgrade Steps

  • Make sure you have Go 1.9+.

Breaking Changes

  • Change hazelcast.Instance interface as hazelcast.Client. #357.
  • MessageListener's OnMessage method should return an error. #351.
  • AddHeartbeatListener is removed. #360.
  • GetMemberByUUID and GetMember methods shouldn't be in cluster service interface. They are removed. #315.
  • SetInvocationTimeout, SetHeartbeatInterval and SetHeartbeatTimeout are removed from config as they dont exist in Java Client. #281.

New Features

  • SSL/TLS Support With Mutual Authentication(Enterprise)
  • Custom Credentials
  • Reliable Topic
  • Hazelcast Cloud Discovery(Enterprise)
  • Statistics

Bug Fixes

  • Change hazelcast.Instance interface as hazelcast.Client. #357.
  • Possible member addresses that were tried to connect to server could have duplicate addresses. #363.
  • Update last write time of a connection if there wasnt any error during the writing process. #361.
  • Client connection should detect that a connection is reading but not sending any data to server to detect heartbeat idle case. #353.
  • AddHeartbeatListener is removed. #360.
  • When server returns an error client was returning it as a string. When they need to look up for a certain thing in the error message they needed to do string comparison. ServerError interface is added, which has error className, errorCode, stackTrace etc. #352.
  • SetInvocationTimeout, SetHeartbeatInterval and SetHeartbeatTimeout are removed from config as they dont exist in Java Client. #281.
  • MessageListener's OnMessage method should return an error. #351.
  • Default partition table update interval was 5 seconds instead of 10. #341.
  • There was a race condition in cluster service. It was possible that client would try to access reconnectChan when client is shutdown. shutdown and onConnectionClosed methods should be synced. #334.
  • Client was hanging because clusterService was using a global waitgroup. The waitgroup should be unique per cluster service. Initial fetch for partition table is added to partition service like Java Client.#334.
  • Map TryPutWithTimeout method was missing. #320.
  • Multimap Delete method was missing. #317.
  • GetMemberByUUID and GetMember methods shouldn't be in cluster service interface. They are removed. #315.
  • Lifecycle states (Starting, Started, Connected, Disconnected, Shuttingdown, Shutdown) werent public. #314.
  • Connection timeout wasn't used while dialing. #306.
  • If a data was serialized by an unknown serializer and if it was tried to be deserialized on Go side, it would panic..#275.

Improvements

  • Readme Enhancement
  • Hazelcast Property. #281.
  • ServerError interface is added, which has error className, errorCode, stackTrace etc. #352.
  • Godocs #314.

0.3

31 May 09:49
ca7a5d4
Compare
Choose a tag to compare
0.3

This document includes the new features, enhancements, and fixed issues for Hazelcast Go Client 0.3 release.

New Features

  • CRDT Counter
  • ID Generator backed by Flake IDs.
  • Projections & Aggregations

Enhancements

Fixes

0.2

13 Mar 07:45
Compare
Choose a tag to compare
0.2

This document includes the new features, enhancements, and fixed issues for Hazelcast Go Client 0.2 release.

New Features

New Distributed Structures implemented

  • Queue
  • Set
  • List
  • MultiMap
  • ReplicatedMap
  • RingBuffer
  • Topic