EventStoreDB 20.10 LTS has been released

Mat McLoughlin  |  22 December 2020

We are finally here, the first long term support release in this new era for EventStoreDB. 

A lot has happened in the past two years at Event Store. We've expanded our teams in all areas. We released Event Store Cloud, which is available on AWS, GCP and Azure. Also we have made a lot of changes to our core product EventStoreDB which, among other things, includes a move to .NET core (single build, better platform support, faster, more reliable) and a move to gRPC (multi-language, simpler and more reliable client) as the main transport between client and server (TCP and HTTP are still around though).

So what do you need to know about this release?

The main focus on 20.10 was around hardening the release and making sure that it is as performant and reliable as it can be in production. A full list of the changes is available in the release notes.

Although there is not much in the way of new features in 20.10 it is worth mentioning again all the new features that came out as part of the 20.6 release. These include but are not limited to:

 

Server Side filtering

Server side filtering was introduced to reduce the need for projections. Although projections are a great feature of EventStoreDB, they don’t come without costs. Each projection you introduce increases the write amplification on the server as each time you write an event it has to be propagated out via any projection that is listening to it.

Server-side filtering is an easy, lightweight, way to filter out any events that you don’t care about without the need to write a projection.

More information about this feature can be found here.

 

A move to .NET core

This has been long requested and we are glad to announce that we have moved over to .NET Core 3.1. This has removed the need for mono and gives a more consistent cross platform experience.

One downside to this change is that we are now no longer able to support running the server on MacOS. However, in this case we do provide docker images that can be used.

 

Implementation of gRPC

Since the beginning EventStoreDB has supported two different client protocols, TCP and HTTP. 

In 20.6 gRPC support was released. This widely adopted standard allows us to interop across lots of platforms with minimal effort. It also means we have been able to produce supported clients for a number of different languages:

With more to come.

 

Read-only replicas

Read only replicas are EventStoreDB’s replacement for clones. They are a type of node within the cluster that cannot be promoted but can still be read from. They are a great way to scale out reads while avoiding any performance effects from having additional followers. More can be found here.

 

EventStoreDB is now secure by default 

With 20.6.0 EvenStoreDB has moved to a secure-by-default approach. The reason for this is that current usage has moved more over to cloud hosted environments, which are often exposed to the internet. Previously customers relied on running in isolated environments and networks to keep their cluster secure but this isn't always the case any more. We want relaxing security to be an active decision made by the customer running the cluster.

This introduces some usability issues so tools and options have been introduced make setting up a cluster easier:

  1. EventStoreDB has a new "Insecure" mode which disables all TLS, certificates, and  authorization/authentication.
  2. The es-gencert-cli tool is provided to help generate CA and Node certificates for EventStoreDB.
  3. Public CA Certificates are now supported, which removes the hassle of creating and setting up your own CA.
  4. The new Configurator in the documentation helps you with the settings and certificates needed to spin up a cluster with your requirements.
  5. docker-compose scripts have been introduced that start a secure cluster for development purposes.

More detailed information about what new features were introduced as part of 20.6 can be found here.

 

The new release strategy

The most important aspect of this release is that it's a long term support (LTS) release. That means, as part of our new release strategy, it will be supported for 24 months. It also means we will shortly be ending support for v4.x

We talked about this back in May. Going forward EventStoreDB will have three releases a year, each in February, June and October. Both the February and June will be normal releases and supported for 4 months. The October release will be an LTS release and supported for 24 months. With the potential for an additional 2 month grace period for you to organise your upgrade.

We will be introducing new features in the February and June release so that customers can get early access to what is coming. Then we can spend time hardening the next release in preparation for the LTS.

The following diagram helps to visualize how releases will work going forwards:

ESDB-Release-Periods-2

What does this mean for me?

Well, it depends on which version of EventStoreDB you are running.

  • If you are running 20.6.1 then we recommend upgrading right away. If you are running a cluster you will be able to do this with zero downtime.
  • If you are running v5.x then you have 12 months left of support. However we would recommend you upgrade in plenty of time to get access to the latest features.
  • If you are running v4.x then then we highly recommend making the upgrade to a later version. Support will be ending in two months, as per our grace period.

If you would like further advice on upgrading please contact your customer success manager / the support team.

EventStore Cloud

20.10 will be available on the Event Store Cloud platform before the end of the year.

New documentation

The team has been working hard on a new documentation site that will make it easier to start with Event Store. Check out our revamped document site here.


Photo of Mat McLoughlin

Mat McLoughlin Mat is Event Store's Former Head of Developer Advocacy; he uses his previous experience as an Event Store customer building event-sourced systems to identify areas where the developer experience can be improved, and his objective is to help more developers learn and successfully implement Event Store in their systems. He has now left Event Store.