We are pleased to announce the official release of EventStoreDB 21.2.0!
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=21.2.0
choco install eventstore-oss -version 21.2.0
To upgrade a cluster from 20.10.0, 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.
With the latest release, all nodes have gossip enabled by default. You can connect using gossip seeds regardless of whether you have a cluster or not.
Please note that the GossipOnSingleNode option has been deprecated in this version and will be removed in version 21.10.0.
In a scenario where one side of a connection to EventStoreDB is sending a lot of data and the other side is idle, a false-positive heartbeat timeout can occur for the following reasons:
In this release, we have extended the heartbeat logic by proactively scheduling a heartbeat request from the receiver to the sender to prevent the heartbeat timeout. This should lower the number of incorrect heartbeat timeouts that occur on busy clusters.
Please see the documentation for more information about heartbeats and how they work.
The server now supports gRPC KeepAlives, and has been configured to send a KeepAlive message over gRPC connections every 10 seconds by default. This means that gRPC clients will be able to discover if their connection has been dropped.
The interval and timeout for KeepAlives on the server can be configured with the KeepAliveInterval and KeepAliveTimeout settings. Please note that these may need to be configured on your gRPC client as well, please check your client’s release notes for more information.
Persistent subscriptions will get some of the focus for the coming releases. As a start on that we’ve made the parked message count available on the stats of a persistent subscription.
This allows you to check the number of parked messages without having to read the parked stream itself.
We want to make sure that projections are predictable.
To support coming changes, we have added content type validation for projections. This means the following:
Events that don’t meet these requirements will be filtered out without erroring the projection.
This change only takes effect either when a projection is created on v21.2.0, or if a projection is stopped and started again. Projections that were created before the upgrade will not enforce content validation.
We’ve introduced a new option to allow customizing the Read Index cache capacity.
EventStoreDB caches the metadata for streams that have been read recently to improve read and write performance.
While the default capacity of 100,000 should be enough for most situations, there are cases where it can be beneficial to increase the cache capacity. For example, if you’re going to be performing a lot of reads and writes to the same 200,000 streams for a period of time.
We’ve added the “StreamInfoCacheCapacity” option to allow tuning this cache. Please be aware that increasing this number will cause EventStoreDB to use more memory.
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.
You can read more about the changes in this post be Oskar Dudycz.