We are pleased to announce the release of v21.2.0 of the Dotnet TCP Client!
You can get the packages from nuget here: EventStore TCP Clientdotnet add package EventStore.Client --version 21.2.0
The upgrade from EventStoreDB v5 to v20 and above will typically require an update to the TCP clients' connection strings. This is mainly due to the fact that the v20 servers are secure by default, whereas the v5 servers are not.
This means that the standard upgrade procedure would require you to update clients and connection strings during the server upgrade. This is a disruptive operation, and we want to make this process easier.
To start with this, we have added an auto compatibility mode for connecting to a cluster with ClusterDNS discovery. This mode determines whether to discover a cluster over secure or insecure HTTP. It also sets the host header appropriately to work around a bug in Mono on v5 servers.
When it's enabled, it will do the following:
It does not affect whether the client should connect using secure or insecure TCP connections, but this is planned for future versions.
To use the auto-compatibility mode, you must be using dns discovery:
And it can be enabled with:
As an example, when connecting to a v5 cluster from a v21.2.0 client:
Connection String:
ConnectTo=discover://{dns_address}:2113;TargetHost={dns_address};UseSslConnection=false;CompatibilityMode=auto;
Connection Settings:var connectionSettings = ConnectionSettings.Create() .SetCompatibilityMode("auto"); var clusterSettings = ClusterSettings.Create() .DiscoverClusterViaDns() .DisableTls() .SetClusterDns({dns_address}) .SetClusterGossipPort(2113);
Thanks to @megakid for the initial work on this feature!
#2796 Introduce compatibility mode
#2821 Time out gossip discovery on the TCP client if the task does not complete
#2832 ValidateServer also sets whether HTTP certificate validation is enabled
Documentation for Dotnet TCP Client can be found here. Documentation for v20.10 and 21.2 of the client will be coming soon!
If you have any questions that aren't covered in these release notes or the docs, please feel free to reach out on discuss, GitHub or slack.
If you encounter any issues, please don’t hesitate to open an issue on GitHub if there isn’t one already.
Additionally, there is a fairly active Discuss channel, and an #eventstore channel on the DDD-CQRS-ES Slack community.