EventStoreDB 20.6.1 Release
We are pleased to announce the official release of EventStoreDB 20.6.1!
It is available for the following operating systems:
- Windows
- Ubuntu 16.04
- Ubuntu 18.04
- Ubuntu 20.04
- CentOS 7 (Commercial version)
- Amazon Linux 2 (Commercial version)
- Oracle Linux 7 (Commercial version)
Where Can I Get the Packages?
Downloads are available on our website.
The packages can be installed using the following instructions.
Ubuntu 16.04/18.04/20.04 (via packagecloud)
curl -s https://packagecloud.io/install/repositories/EventStore/EventStore-OSS/script.deb.sh | sudo bash |
sudo apt-get install eventstore-oss=20.6.1-2
Windows (via Chocolatey)
choco install eventstore-oss -version 20.6.1
.NET gRPC Client Packages
dotnet add package EventStore.Client.Grpc.Streams –version 20.6.1
gRPC Projection Management Client
dotnet add package EventStore.Client.Grpc.ProjectionManagement –version 20.6.1
gRPC Persistent Subscriptions Client
dotnet add package EventStore.Client.Grpc.PersistentSubscriptions –version 20.6.1
dotnet add package EventStore.Client.Grpc.Operations –version 20.6.1
dotnet add package EventStore.Client.Grpc.UserManagement –version 20.6.1
.NET TCP Client Packages
dotnet add package EventStore.Client –version 20.6.1
Upgrade Procedure
To upgrade a cluster from 20.6.0, a usual rolling upgrade can be done:
- Pick a node (Start with slave nodes first, then choose the master last)
- Stop the node, upgrade it and start it
If you are upgrading a cluster from version 5.x and below, please read the upgrade procedure in the 20.6.0 release notes.
Known Issue with Packagecloud Upgrades
There is a known issue with upgrading to version 20.6.1 using packagecloud caused by the 20.6.0 uninstall script. This issue was found in the first 20.6.1 script so may affect some people who pulled the package before we updated it. This issue causes the upgrade to fail, meaning that the service won’t start up and the eventstored
command will not be available.
To fix this, please manually uninstall the current version of EventStoreDB before installing the 20.6.1-2 debian package.
Setting Up EventStoreDB
Running a Cluster with Docker Compose
We’ve added a Docker Compose file to EventStoreDB to make running a secure cluster quick and easy. Check it out in the documentation.
Configuring a Cluster to Run with Certificates
We’ve added a tool to help with creating certificates for an EventStoreDB cluster. You can find the tool and usage instructions here.
Once you have the certificates generated, you will need to configure your nodes to use them. You can do this by adding the following configuration to any existing configuration:
TrustedRootCertificatesPath: {Path to CA Directory}
CertificateFile: {Path to Certificate File}
CertificatePrivateKeyFile: {Path to Private Key File}
Insecure Mode
We have introduced an Insecure mode for those who wish to run EventStoreDB without security or certificates.
Insecure mode disables all authentication, authorization and transport security for the node and any clients connected to it.
This option can be enabled with the Insecure
flag.
Breaking Changes
Dev Mode Removed
Dev mode didn’t make sense following the introduction of a dedicated Insecure mode.
Due to this and the fact that Dev mode should not have been used in production, we made the decision to remove Dev mode entirely.
If you were using Dev mode to avoid setting up certificates, please run EventStoreDB in Insecure mode instead. If you are wanting to run EventStoreDB with certificates, please see the steps outlined above.
Default Cluster Gossip Port
The cluster gossip port was previously set to 30777 by default as this was the default gossip port used by Manager nodes.
Since EventStoreDB 20.6 does not use manager nodes, keeping the port set to this value made no sense. As such, the default cluster gossip port is now the default HTTP port for a node, 2113.
Embedded TCP Client
The Embedded TCP client is not a part of the 20.6.1 release. There are some known issues with the client in this version, specifically around running in a clustered setup.
Main Headline Features
The following are just some of the changes introduced in this version.
For a full list of changes and fixes, please see the changelog.
Custom Client Certificate Common Name
The client certificate common name (CN) that is used to secure a cluster was previously hardcoded to eventstoredb-node
.
This meant that public CAs could not be used to generate a certificate for the cluster.
Now, the client certificate CN can be set with the CertificateReservedNodeCommonName
option.
Reloading Certificates
Certificates can be reloaded by triggering the /admin/reloadconfig
endpoint, or by sending a SIGHUP
signal on Linux systems.
The process for rolling the certificates on a cluster is as follows:
- Update the certificates on each node one by one. Update the config file if required (e.g if certificate file names/password/paths have changed)
- Send a
POST
request to the/admin/reloadconfig
endpoint, or aSIGHUP
signal to the EventStoreDB process.
For more information about this change, please see the instructions in the pull request.
Reloading Log Levels
It’s sometimes useful to update the log levels to be more verbose while debugging issues with EventStoreDB. Previously, this required a restart of the server which could cause the issue to stop presenting itself.
An endpoint has been added to allow reloading the log level from configuration while EventStoreDB is running.
To make use of this, update the LogLevel
option in the config file, and then send a POST
request to the /admin/reloadconfig
endpoint, or send a SIGHUP
signal if on Linux.
Restart Persistent Subscriptions
Persistent subscriptions can sometimes run into issues that require them to be restarted. Previously, you’d need to restart the leader node to fix the issue, which is disruptive to the cluster.
The 20.6.1 version provides the ability to restart the persistent subscriptions service without affecting the leader node. This can be done either by sending a POST
request to the /subscriptions/restart
HTTP endpoint, or through the persistent subscriptions gRPC client.
New gRPC Clients
There has been a lot of interest about the other gRPC clients we are working on, which has prompted us to open the following client repos:
Feedback on these clients and on the ones to come are greatly appreciated. Please see the places to provide feedback at the end of these release notes.
Documentation
We are still working hard on improving our documentation. A preview of what’s to come can be found here.
Documentation for EventStoreDB 20.6.x is part of this effort and can be found here.
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.
Providing Feedback
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.