Skip to content

Releases: tigerbeetle/tigerbeetle

0.16.64: Merge pull request #3366 from tigerbeetle/release-2025-11-07

10 Nov 15:23
9cc1236

Choose a tag to compare

0.16.64

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.60

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.64
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.64-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.64
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.64
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.64.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.64
  • Python: pip install tigerbeetle==0.16.64

Changelog

Internals

  • #3344,
    #3362

    Parametrize code over Operation rather than the entire StateMachine. Previously, client code
    used to have a dependency on the implementation code of the concrete state machine, whereas it
    only needs to know the types of the operations involved.

  • #3358,
    #3356,
    #3357

    Remove usize
    from constants, scans and CLI arguments.

  • #3351

    Remove StateMachine's dependency on a specific StateMachineConfig and rather use the global
    constants.

  • #3343

    Simplify the Rust client's build script and bring it inline with other clients by making it no
    longer driver TigerBeetle's build.

TigerTracks 🎧

0.16.63: Merge pull request #3352 from tigerbeetle/release-2025-10-31

03 Nov 12:50
2f945cb

Choose a tag to compare

0.16.63

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.59

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.63
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.63-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.63
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.63
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.63.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.63
  • Python: pip install tigerbeetle==0.16.63

Changelog

Safety And Performance

  • #3294,
    #3336

    Allow backups to accept prepares from the next checkpoint when they replace already committed
    prepares.

  • #3323

    Assert the size of Headers and StartView messages.

  • #3318

    Correctly reset the pulse_next_timestamp.

  • #3316

    Disable config.verify in release builds, while promoting several assertions gated by verify
    to regular assertions.

  • #3335

    Fix an unhandled error on unreachable networks that could cause liveness issues.
    Also ban all usage of posix.send() in favor of posix.sendto().

  • #3334

    Free up about 300MiB of memory by sharing the same buffer for in-place radix sort.

Features

  • #3302

    Clarify that the TBID, which is a u128 number, only specifies the bit layout.

  • #3291

    Introduces tigerbeetle inspect integrity to verify offline that a datafile is uncorrupted.

  • #3254

    Prepare the Rust client for publication.

Internals

  • #3312,
    #3324

    Improve duration parsing by removing ambiguous units and adding fuzz tests.

  • #3313

    Update data file documentation to correctly state the grid block size as 512 KiB.

  • #3311

    Clarify the release process in case a version of TigerBeetle is skipped.

  • #3317

    Fix invalid payload references after modifying the active tag in a tagged union.

  • #3339

    Remove unnecessary deduplication logic when scanning from memory tables,
    since #2592 already
    introduced deduplication during sorting.

  • #3346

    Reserve the maximum release version (65535.x.x) for testing clusters (cluster_id zero).

  • #3342,
    #3338,
    #3330,
    #3347,
    #3341

    Various Vortex and CFO improvements.

  • #3332,
    #3331

    Fix the build command for clients in HACKING.md and other typos.
    Thanks @gharbi-mohamed-dev!

TigerTracks 🎧

0.16.62: Merge pull request #3310 from tigerbeetle/tobi/release_10_17

20 Oct 11:34
559af20

Choose a tag to compare

0.16.62

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.58

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.62
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.62-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.62
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.62
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.62.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.62
  • Python: pip install tigerbeetle==0.16.62

Changelog

Safety And Performance

  • #3304

    Enable VOPR to detect when the message limit is exceeded.

  • #3307

    Enable unit tests for deprecated operations.

  • #3309

    Improve the release process by publishing to npm via trusted publishers.

Features

  • #3299

    Rephrase the "debits first" explanation in documentation.

Internals

  • #3300

    Refactor the message bus to save memory and tighten explicit SendQueue limits.

  • #3296

    Implement BoundedArray from scratch.

  • #3292

    Remove needless use of bounded array from REPL.

  • #3308

    Refactor and cleanup Vortex.

TigerTracks 🎧

NoClock02

0.16.61: Merge pull request #3297 from tigerbeetle/release-2025-10-03

06 Oct 14:21
144dbd3

Choose a tag to compare

0.16.61

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.57

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.61
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.61-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.61
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.61
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.61.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.61
  • Python: pip install tigerbeetle==0.16.61

Changelog

Safety And Performance

  • #3263

    Speed up cluster repair by adapting the pace and distribution of repair requests according to
    observed network conditions.

  • #3282

    Speed up cluster repair by not delaying execution of committed prepares until the log is fully
    repaired.

  • #3249,
    #3293,
    #3289

    Add a dedicated fuzzer for MessageBus.

Features

  • #3212

    Add --log-trace for extra verbose logging.

  • #3286

    After successfully adding a test that tests tests in
    #3136, we doubled down on this strategy
    and are adding a metric for tracking metrics.

Internals

  • #3115

    Use ISO4217 three-letter codes when writing about currencies (so, USD over $).

  • #3284

    Clean up Adaptive Replication Routing implementation.

  • #3287

    Speed up zig build test by removing false build-time dependencies.

TigerTracks 🎧

ReleaseNotes_0 16 61b

0.16.60: Merge pull request #3283 from tigerbeetle/release-2025-09-26

29 Sep 14:21
30abd5a

Choose a tag to compare

0.16.60

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.56

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.60
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.60-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.60
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.60
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.60.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.60
  • Python: pip install tigerbeetle==0.16.60

Changelog

Safety And Performance

  • #3270

    Remove a copy from the StateMachine.

  • #3273

    Update the k-way-merge to use the new from_seed_testing().

  • #3277

    Improve metrics to use a reduce the worst case packet count (and benefit from a small memory
    saving while we're at it).

Features

  • #3278

    Clarified documentation on closing accounts and two-phase transfers.
    Thanks @raui100!

Internals

  • #3275

    Refactor references to old time types to use the Instant and Duration types.

  • #3274

    Added documentation for our CI entrypoint: zig build ci.

TigerTracks 🎧

0 16 60

0.16.59: Merge pull request #3271 from tigerbeetle/release-2025-09-19

22 Sep 18:18
bebc1a2

Choose a tag to compare

0.16.59

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.55

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.59
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.59-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.59
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.59
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.59.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.59
  • Python: pip install tigerbeetle==0.16.59

Changelog

Safety And Performance

  • #3257

    Introduce Least Significant Digit (LSD) radix sort in stdx.

  • #3268

    Use radix sort in the memory tables to get more performance improvements.

  • #3250

    Reduce tail latencies by tracking sorted runs and use k-way merge to sort them.

    Collectively, these changes result in the following performance improvements on modern servers
    (Hetzner AX102):

    Metric Before After
    Load accepted (tx/s) 414,375 606,258
    Batch latency p100 115ms 75ms

Internals

  • #3262

    Use Zig's new std.testing.random_seed to introduce genuine randomness in tests.

  • #3260

    Fix a crash due to corruption and misdirection found by the WIP message bus fuzzer.

TigerTracks 🎧

ReleaseNotes_0 16 59

0.16.58: Merge pull request #3256 from tigerbeetle/release-2025-09-12

15 Sep 12:06
90f05d2

Choose a tag to compare

0.16.58

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.54

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.58
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.58-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.58
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.58
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.58.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.58
  • Python: pip install tigerbeetle==0.16.58

Changelog

Safety And Performance

  • #3248

    Fix a bug where grid.cancel was erroneously being invoked during commit_stage=checkpoint_durable.

  • #3245

    Remove peer type from MessageBuffer, maintaining it only at MessageBus level.

    This solves a bug introduced by #3206,
    due to divergent peer state between MessageBus and MessageBuffer.

  • #3226,
    #3230,
    #3223,
    #3222

    Low-level LSM performance improvements. The k-way merge iterator now uses a tournament tree
    instead of a heap, we skip sorting of the mutable table if it's not needed, and we skip binary
    search if possible by min/max key ranges.

  • #3237

    Use a different PRNG seed for Replica each time, rather than a fixed seed of the replica ID. This
    PRNG controls things like exponential backoff jitter and the order of the blocks on which the grid
    scrubber runs.

Features

  • #3253

    Introduce --requests-per-second-limit to throttle CDC requests to TigerBeetle.

    Usage for this option is orthogonal to --idle-interval-ms and --event-count-max, allowing
    fine-tuning for low latency without overflowing the AMQP target queue.

  • #3206

    In order to avoid bimodality if a replica is down (eg, a client sends a request, doesn't hear
    anything, eventually times out and tries a different replica) clients now proactively send their
    requests to the primary and a randomly selected replica.

    Backups can also send replies directly to clients, meaning that a client could be completely
    partitioned from the primary, but still remain available.

Internals

  • #3251

    Mark grid cache blocks as MADV_DONTDUMP, making core dump size tractable even with large caches.

  • #3227,
    #3231,
    #3242

    Preparation for the Zig 0.15.1 upgrade.

  • #3236,
    #3229,
    #3198

    A host of multiversion improvements! Multiversioning is now a proper interface, rather than being
    scattered about. Additionally, Windows support is now significantly more robust, and will be
    integration tested like the other platforms in the next release.

TigerTracks 🎧

ReleaseNotes_0 16 58

0.16.57

01 Sep 12:55

Choose a tag to compare

0.16.57

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.53

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.57
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.57-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.57
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.57
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.57.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.57
  • Python: pip install tigerbeetle==0.16.57

Changelog

Safety And Performance

  • #3200

    Improved performance in set_associative_cache.zig by using Fastrange and SIMD.

  • #3201

    Improved performance and better codegen in aegis.zig by avoiding aliasing.

  • #3205

    Retain table repair progress across checkpoint boundaries,
    to reduce the time to complete state sync for active clusters.

  • #3216

    Use the NOSIGNAL flag with both asynchronous send and synchronous send_now.
    This avoids receiving a possible SIGPIPE signal raised by the kernel.

  • #3189

    Improve the Rust client API to make the returned future thread-safe.
    Thanks @michabp!

  • #3208

    Fix the Go client to make the subfolder with external files required by CGO
    compatible with go vendor.
    Thanks @itzloop.

  • #3203

    Fix the Python client to make close() async on ClientAsync.

Internals

  • #3215

    Removed support for closed loop replication in repair and sync protocols.

  • #3210,
    #3211

    Ban equality and inequality comparisons with error values, as they may silently
    perform an untyped comparison.
    Enforce handling errors with switch blocks instead.

  • #3207

    Consolidate all Windows APIs we use (not present in Zig’s std) under stdx.windows.

  • #3199,
    #3194

    Improve upgrade tests.

  • #3202,
    #3140

    Improve the documentation to explain adaptive routing and add notes about
    using CDC in production.

  • #3196

    Moves the unshare code into stdx.unshare and uses it for both Vortex and CFO.
    Also fixes how vortex run was handling the child process error code.

TigerTracks 🎧

image

0.16.56: Merge pull request #3197 from tigerbeetle/tobi/release

25 Aug 12:59
20a0174

Choose a tag to compare

0.16.56

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.52

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.56
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.56-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.56
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.56
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.56.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.56
  • Python: pip install tigerbeetle==0.16.56

Changelog

Safety And Performance

  • #3185

    Improve the speed of trailer repairs by initiating repair requests more proactively.

  • #3017

    Add Vortex to CI to test clients (Java, Zig, Rust).

  • #3193

    Ensure only the primary responds to VSR repeat requests.

Features

Internals

  • #3195

    Simplify budgeting for VSR repairs.

  • #3181

    Refactor ReleaseList to contain the release logic.

  • #3190

    Improve naming for journal and grid message budgets.

TigerTracks 🎧

image

0.16.55

18 Aug 14:53
4f859e1

Choose a tag to compare

0.16.55

Supported upgrade versions

Oldest supported client version: 0.16.4
Oldest upgradable replica version: 0.16.51

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.55
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.55-debug

Clients

NOTE: Because of package manager caching, it may take a few
minutes after the release for this version to appear in the package
manager.

You cannot run a newer client against an older cluster: clients are only compatible
with replicas from their own release or newer, subject to the newer release's
Oldest supported client version.

  • .NET: dotnet add package tigerbeetle --version 0.16.55
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.55
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.55.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.55
  • Python: pip install tigerbeetle==0.16.55

Changelog

Safety And Performance

  • 3187

    Make repair timeout reliably fire in a loaded cluster processing small batches.

  • #2863

    Make tigerbeetle format concurrent and only write essential data.
    This speeds up the time to format considerably.

  • #3145

    Cache prepares from the future, to help avoid needing to repair the WAL near checkpoints when a
    backup is a little behind primary.

Features

  • #3174

    Don't unlink data file on formatting failure.

  • #3173

    Use correct default statsd port (8125).

  • #3154

    Remove translation logic from old checkpoint state to new. Note that this means that
    tigerbeetle inspect will no longer decode superblocks from 0.16.25 or older, until
    they are upgraded to at least 0.16.26.

Internals

  • #3186

    Improvements to the balance bounds, rate limiting, and two phase transfers recipes. Thanks @snth!

  • #3150

    Use true quine to generate unit tests.

  • #3160

    Drop SigIllHandler. This was supposed to print a nice error message on unsupported
    architectures, but we hit SigIll in Zig's _start, before we get to our main.

  • #3148

    Add constants for KiB thru PiB.

TigerTracks 🎧

releasenotes_0 16 55_720