EventStoreDB 24.6 was officially released on the 26th of June 2024. Even though it is a mid-year interim release, there a quite a few feature enhancements plus some exciting new features as well. Keep reading to learn more!
New Features
Feature Enhancements
Breaking Changes
EventStoreDB v23.10 is the last release to natively support the legacy TCP-based client protocol. Version 24.2 removed it completely.
This release introduces a new plugin that allows to connect to the database with the legacy TCP API. This is a stop-gap solution for customers who have not yet upgraded to the gRPC API.
Read more about enabling and configuration of the TCP API plugin in the documentation.
An alpha build was available for running EventStoreDB on arm64 processors since EventStoreDB v22.10 using a Docker image.
Since version 24.6, EventStoreDB can now be built from source and executed on macOS with Apple Silicon.
Continuing the work on observability, the following metrics are now available.
eventstore_elections_count
eventstore_projection_status
eventstore_projection_progress
eventstore_projection_events_processed_after_restart_total
eventstore_persistent_sub_connections
eventstore_persistent_sub_in_flight_messages
eventstore_persistent_sub_parked_messages
eventstore_persistent_sub_oldest_parked_message_seconds
eventstore_persistent_sub_items_processed
eventstore_persistent_sub_last_known_event_number
eventstore_persistent_sub_last_known_event_commit_position
eventstore_persistent_sub_checkpointed_event_number
eventstore_persistent_sub_checkpointed_event_commit_position
Several performance and compatibility improvements have been made to EventStoreDB and client SDKs, described below.
Reduced FileHandle usage by 80%
The number of file handles used by the database has been reduced by 80%. On large databases it results in:
Faster Startup For Scavenged databases
Large database with thousands of scavenged chunks now starts faster. A 10x improvement has been observed in testing.
Refer to the clients documentation for instructions on how to enable and use X.509 certificates with the EventStoreDB clients.
The following System metrics are now available on the following platforms:
eventstore_sys_load_avg
: Linux, FreeBSD, macOS, Windowseventstore_sys_cpu
: Linux, FreeBSD, macOSThe following Process metrics are now available on the following platforms:
eventstore_disk_io_bytes
: Linux, Windows and macOS
The HTTP status code to be returned by the /health/live
endpoint can be provided using the liveCode
query parameter. For example, making a GET
HTTP call to /health/live?liveCode=200
will return an empty response with 200 OK
status code.
This is useful for liveness probe expecting specific status code.
This bug only appears with events written in explicit transactions with the deprecated TCP API. They will not appear on filtered $all reads and subscriptions under specific circumstances.
This fix will also be back ported to v23.10.2 and v22.10.6.
Failed
will now be marked as Interrupted
.The persistent subscription checkpoint event type has been changed from SubscriptionCheckpoint
to $SubscriptionCheckpoint
.
Checkpoints written before upgrading will still have the old event type and will continue to work.
Previously a deposed leader that needed offline truncation would:
The process is now:
This will affect nodes that run under a Service Manager configured to disallow successive stops of the process, like systemd with StartLimitIntervalSec
and StartLimitBurst
.
Part of the file copy backup and restore procedure requires copying the chaser checkpoint file over the truncate checkpoint file.
This might trigger the database to truncate the log on startup.
Previously the process was:
The process is now:
This will affect nodes that run under a Service Manager configured to disallow successive stops of the process, like systemd with StartLimitIntervalSec
and StartLimitBurst
The --unbuffered
config setting is deprecated and has no effect when set to true
. This option was used to enable unbuffered and direct IO when writing to the file system, and it is no longer supported.
You can read more about any breaking changes and what you should be aware of during an upgrade in the Upgrade Guide.
Please refer to the upgrade guide in our documentation.