We are pleased to announce the official release of EventStoreDB 20.10.0 LTS!
It is available for the following operating systems:
Downloads are available on our website.
The packages can be installed using the following instructions.
curl -s https://packagecloud.io/install/repositories/EventStore/EventStore-OSS/script.deb.sh | sudo bash
sudo apt-get install eventstore-oss=20.10.0
choco install eventstore-oss -version 20.10.0
dotnet add package EventStore.Client.Grpc.Streams --version 20.10.0
gRPC Projection Management Client
dotnet add package EventStore.Client.Grpc.ProjectionManagement --version 20.10.0
gRPC Persistent Subscriptions Client
dotnet add package EventStore.Client.Grpc.PersistentSubscriptions --version 20.10.0
dotnet add package EventStore.Client.Grpc.Operations --version 20.10.0
dotnet add package EventStore.Client.Grpc.UserManagement --version 20.10.0
dotnet add package EventStore.Client --version 20.10.0
To upgrade a cluster from 20.6.x, a usual rolling upgrade can be done:
If you are upgrading a cluster from version 5.x and below, please read the upgrade procedure in the 20.6.0 release notes. https://eventstore.com/blog/event-store-20.6.0-release/
There is a known issue with upgrading to version 20.6.1 and 20.10.x 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.10.0 package.
We’ve added a Docker Compose file to EventStoreDB to make running a secure cluster quick and easy.
To start up a cluster, simply run docker-compose up
. This will bring up a 3 node cluster bound to the following endpoints:
Node |
TCP EndPoint |
HTTP EndPoint |
Node1 |
localhost:1111 |
localhost:2111 |
Node2 |
localhost:1112 |
localhost:2112 |
Node3 |
localhost:1113 |
localhost:2113 |
Browse to https://localhost:2111 to open the admin UI for the first node.
Using gRPC, you can connect to the cluster with the following:
var settings = EventStoreClientSettings.Create(
"esdb://localhost:2111,localhost:2112,localhost:2113?tlsVerifyCert=false");
var client = new EventStoreClient(settings);
Using TCP, you can then connect to the cluster with the following:
var connectionString =
"GossipSeeds=https://localhost:2111,https://localhost:2112,https://localhost:2113;" +
"CustomHttpMessageHandler=SkipCertificateValidation;" +
"ValidateServer=false";
var connection = EventStoreConnection.Create(connectionString);
await connection.ConnectAsync();
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}
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.
This release does not add many new features, instead it is focussed around hardening the 20.6.1 release for LTS.
As EventStoreDB databases get larger, the amount of memory used for operations such as index merges increases. This is particularly evident when the index cache depth has been set to a high value.
We have updated the index merge process to release memory as early as possible during a merge, and to prevent MemTables from piling up during large index merges during full index rebuilds.
gRPC reads now use .NET channels internally. This makes subscriptions and reads more reliable and fixes a few issues that were reported with subscriptions.
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:
.NET - https://github.com/EventStore/EventStore-Client-Dotnet
NodeJs - https://github.com/EventStore/EventStore-Client-NodeJS
Java - https://github.com/EventStore/EventStoreDB-Client-Java
Golang - https://github.com/EventStore/EventStore-Client-Go
Rust - https://github.com/EventStore/EventStoreDB-Client-Rust
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 for EventStoreDB 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.
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