Release Notes

22.6.0 Release Notes

Hayley Campbell  |  17 August 2022

We are pleased to announce the official interim release of EventStoreDB OSS & Commercial version 22.6.0.

This is an interim release and will be supported until October 2022.
Read more about our versioning strategy here.

The complete changelog can be found here. If you need help planning your upgrade or want to discuss support, please contact us here.

 EventStoreDB 22.6.0 is available for the following operating systems:

  • Windows
  • Ubuntu 18.04
  • Ubuntu 20.04
  • Ubuntu 22.04 (preview)
  • CentOS 7 (Commercial version)
  • Amazon Linux 2 (Commercial version)
  • Oracle Linux 7 (Commercial version)

Additionally an experimental build for ARM64 processors can be found as a Docker image here

Note:
Ubuntu 16.04 is not supported anymore as of 21.10.0 release, more information about Ubuntu’s release and support policy can be found here.

Should I upgrade?

22.6.0 is an interim version and will only be supported until version 22.10.0 is released in October.

This means that when 22.10.0 is released, both 22.6 and 20.10 will be out of support and will no longer receive patches or fixes.

ESDB-Release-Periods-4

You should upgrade to EventStoreDB 22.6.0 if you want to test out or make use of the new features released in this version, or if you want to prepare for the next LTS release.

If you run 22.6.0 in production, then please bear in mind that you will need to upgrade again in October to benefit from any new fixes and patches.

Important fixes in 21.10.7

If you are not upgrading to 22.6.0, then we highly recommend keeping EventStoreDB up to date with the latest LTS patch versions.

These patches contain important fixes for cluster stability, performance, and the prevention of possible data-loss scenarios.

The upgrade can be done directly from any version of 20.10 and 21.10. There is no need to step through all of the versions, and the upgrade steps are the same as below.

20.10 going out of support soon

LTS versions of EventStoreDB are supported for a period of 2 years, which means that 20.10 will be going out of support when 22.10 is released later this year.

As such, we recommend that you either upgrade now to 21.10.7, or prepare for an upgrade to 22.10.0 later this year.

If you are remaining on 20.10 for now, then we recommend keeping up to date with the minor releases for 20.10. At the time of the 22.6.0 release, the latest version of 20.10 is 20.10.5, which contains the same important fixes and patches as 21.10.6.

Upgrade Procedure

To upgrade a cluster from 20.10.x or 21.10.x,  a usual rolling upgrade can be done:

  • Pick a node (start with the follower nodes first, then choose the leader last).
  • Stop the node, upgrade it and start it.

Where Can I Get the Packages?

Downloads are available on our website.

The packages can also be installed using the following instructions.

Ubuntu 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=22.6.0

Windows (via Chocolatey)

choco install eventstore-oss -version 22.6.0

Docker (via docker hub)

docker pull eventstore/eventstore:22.6.0-focal

docker pull eventstore/eventstore:22.6.0-buster-slim

 

Highlights for this release

Packages for Ubuntu 22.04

This release includes packages for 22.04. While we have done preliminary testing on these packages, we have not yet run a full QA on them.

As such we consider these packages as a preview, where you can use them at your own risk. If we do not find any issues with these packages, they will be officially supported with the release of 22.10.0 later this year.

The packagecloud installation instructions are similar to those in the downloads section above:

curl -s https://packagecloud.io/install/repositories/EventStore/EventStore-OSS/script.deb.sh | sudo bash

sudo apt-get install eventstore-oss=22.6.0~preview1

$all position is available when reading streams over gRPC

Version 22.6.0 populates the $all position for stream reads, subscriptions, and persistent subscriptions. This means that you can now read an event in a stream and find its corresponding position in the $all stream.

In order to get this functionality, you will need to upgrade the following clients to the latest version:

  • NodeJs
  • Java
  • Go

The other gRPC clients already support this feature without needing an upgrade.

The one caveat is that this is not supported on events written through transactions in the legacy TCP client. For these events, the positions in the events will be empty as before.

Check out the PR for more information.

Better support for the Windows cert store

You can now load the Trusted Root Certificate from the Windows certificate store rather than from a folder.

To use this, provide TrustedRootCertificateStoreName and TrustedRootCertificateStoreLocation in the settings when configuring your EventStoreDB, and then provide either the TrustedRootCertificateThumbprint or TrustedRootCertificateSubjectName to specify which certificate to load.

For example, using thumbprint:

TrustedRootCertificateStoreLocation: LocalMachine

TrustedRootCertificateStoreName: Root

TrustedRootCertificateThumbprint: {thumbprint}

CertificateStoreLocation: LocalMachine

CertificateStoreName: My

CertificateThumbprint: {thumbprint}

Or using SubjectName (this will match any certificate that contains the subject name):

TrustedRootCertificateStoreLocation: LocalMachine

TrustedRootCertificateStoreName: Root

TrustedRootCertificateSubjectName: EventStoreDB CA

CertificateStoreLocation: LocalMachine

CertificateStoreName: My

CertificateSubjectName: eventstoredb-node

See PR#3498 for more details.

 

Breaking changes for community gRPC clients

EmitEnabled and TrackEmittedStreams for projections

The server now supports clients setting EmitEnabled and TrackEmittedStreams when creating a projection.

Updates for our supported clients will be made after this release, but if you maintain your own client, then you will need to take note of the changes made here:

https://github.com/EventStore/EventStore/pull/3384

https://github.com/EventStore/EventStore/pull/3412

Essentially, the names of EmitEnabled and TrackEmittedStreams have been swapped in the proto because what the server used to refer to as TrackEmittedStreams is, in fact, the correct behavior for EmitEnabled.

Therefore clients that were relying on the old behavior and just sending TrackEmittedStreams=true to enable emitting when creating a projection will continue to work after upgrading the server.

However, the server will now throw when sent a create request with TrackEmittedStreams=true, but EmitEnabled=false. This is because a code change will be needed when a client library is upgraded, so throwing an error will make that code change more obvious.

Contributions by the community

Thank you to the community members who made contributions to this server release!

Better summaries for CI Runs EventStore#3496, Thanks Tyrrrz!

Documentation and previous releases notes

Documentation for EventStoreDB can be found here. Previous release notes can be found here.

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  community.

If you have any questions that aren't covered in these release notes or the docs, please feel free to reach out.


Photo of Hayley Campbell

Hayley Campbell Hayley is Engineering Team Lead for Event Store and works in our Netherlands office. She was part of the team back in 2015 and re-joined in 2019. In her spare time she enjoys playing games.