close
Skip to content

Releases: tigerbeetle/tigerbeetle

0.17.1: Merge pull request #3655 from tigerbeetle/release-2026-04-17

20 Apr 13:18
Immutable release. Only release title and notes can be modified.
bbe61ab

Choose a tag to compare

0.17.1

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.1
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.1-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.17.1
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.17.1
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.17.1.
  • Node.js: npm install --save-exact tigerbeetle-node@0.17.1
  • Python: pip install tigerbeetle==0.17.1

Changelog

Safety And Performance

  • #3643

    Make VSR repair less eager, cutting request_prepare traffic by ~70-80% and
    request_headers by ~80-90% for minor overhead.

  • #3600

    Improve compaction table-selection from O(a * log b) to O(a + b), especially
    noticeable at 20TB+.

Internals

  • #3637

    Refactor stdx.flags to own its allocator and return trailing -- args as a slice.

  • #3642

    Rename VSR view-change messages: DoViewChange -> JoinView, StartView -> View,
    StartViewChange -> ExitView.

  • #3652

    Re-enable VOPR in CI.

  • #3649

    Increase tick budget for the Vortex upgrade/recover test, which was occasionally
    timing out.

  • #3647

    CI: fetch git tags in the release-validate job.

  • #3648

    Docs: drop an overly wide comparison table from the API changes page.

  • #3650,
    #3651

    Docs: remove references to the retired Startup Program.

  • #3653

    Clean up TigerTracks in CHANGELOG.md by only using song titles.

TigerTracks 🎧

image

0.17.0: Merge pull request #3646 from tigerbeetle/cbb/skip_duplicate_dotnet

13 Apr 17:53
Immutable release. Only release title and notes can be modified.
ac79031

Choose a tag to compare

0.17.0

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.0
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.0-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.17.0
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.17.0
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.17.0.
  • Node.js: npm install --save-exact tigerbeetle-node@0.17.0
  • Python: pip install tigerbeetle==0.17.0

Changelog

This release improves create_accounts and create_transfers operations. They now return
timestamps of newly created objects, allowing the application to learn the resulting global order
of events without additional roundtrips. As usual, this release remains wire-compatible with
previous clients. To gain access to the new APIs, please upgrade clients to version 0.17.0. Refer
to the API changes page for details.

Safety And Performance

  • #3599

    Improve repair performance by tracking per-replica repair budgets, to prevent a slow replica
    from tying up the global budget.

  • #3618,
    #3623,
    #3630,
    #3638

    Add randomness to repair timeouts and faulty block iteration, to guard against
    resonance liveness bugs.

  • #3612

    Test cluster upgrades using real TigerBeetle binaries in Vortex.

Features

  • #3258

    Change the return type and semantics of the create_{accounts,transfers}.

  • #3574

    Add the API changes page to the docs: https://docs.tigerbeetle.com/coding/api-changes.

  • #3624

    Remove default initialization from Python client's AccountFilter and QueryFilter.

  • #3607

    Querying with a limit which would not fit in the maximum message size now
    fails with TooMuchData in the client, rather than silently truncating results.

  • #3593

    Add metric tracking recent client min/max releases seen by the cluster.

  • #3617

    Fix several bugs in the client_request_round_trip metric.

  • #3620

    Make the Golang client API more idiomatic using *big.Int.

  • #3628

    While generating a TigerBeetle time-based ID, clients now wrap the random
    bits and increment the timestamp bits when the former overflows.

    Earlier, clients panicked when random bits overflowed on increment.

Internals

  • #3609

    Cache Zig compiler on CI.

  • #3604,
    #3622

    IO/Linux: Add another attempt to the flock() retry loop.

  • #3634,
    #3629,
    #3635

    Various Vortex and CFO fixes.

  • #3632

    Docs: Clarify the number of replicas required for upgrades.

  • #3595

    Docs: Fix a flipped account flag in balance-invariant-transfers.md.

TigerTracks 🎧

ReleaseNotes_0 17 00

0.16.78

23 Mar 13:59
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

0.16.78

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.78
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.78-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.78
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.78
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.78.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.78
  • Python: pip install tigerbeetle==0.16.78

Changelog

Safety And Performance

  • #3581

    Fix an over-tight assert -- we may still be writing non-repair blocks at the start of
    checkpointing.

  • #3586

    Fix a potential liveness issue where we try to repair a block while simultaneously writing to it.

Internals

  • #3585

    tigerbeetle inspect constants now prints out the number of Transfers per table.

  • #3579,
    #3589,
    #3591,
    #3584,
    #3594

    Fix the CI release validation job.

  • #3583

    Refactor our iops.zig to a more approriate home in stdx.

TigerTracks 🎧

ReleaseNotes_0 16 78

0.16.77: Merge pull request #3578 from tigerbeetle/release-2026-03-13

16 Mar 10:09
Immutable release. Only release title and notes can be modified.
e0e871c

Choose a tag to compare

0.16.77

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.77
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.77-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.77
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.77
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.77.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.77
  • Python: pip install tigerbeetle==0.16.77

Changelog

Safety And Performance

  • #3485

    Rework how eviction is signaled in tb_client to avoid race conditions between eviction and
    shutdown, unify notification logic, and add assertions for running on the correct thread.

  • #3553

    Optimize compaction performance by removing IO stalls at the end of each beat, allowing IO to
    overlap with other work and increasing throughput by ~4%.

  • #3567

    Allow the grid to serve reads directly from write queues, improving performance for blocks being
    currently repaired or created.

  • #3575

    Work around a miscompilation in Zig's LLVM backend by downcasting alignment in stdx.equal_bytes.

Internals

  • #3572

    Prepare the Rust client for release by removing dependencies (anyhow, futures-channel),
    and setting up automated release builds (not enabled yet).

  • #3537

    Fuzz updates on CompositeKeys, identifying a bug in a proposed prefix-only sort optimization.

  • #3566

    Add a new metric to track time spent on CPU work, specifically callbacks.

  • #3569

    Tighten units for IOPS, concurrency, and durations in config.

  • #3576

    Fix worst case sizing and add prefetch in the scan fuzzer, to mirror state machine logic.

TigerTracks 🎧

ReleaseNotes_0 16 77

0.16.76: Merge pull request #3570 from tigerbeetle/release-2026-03-06

09 Mar 09:39
Immutable release. Only release title and notes can be modified.
eff0813

Choose a tag to compare

0.16.76

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.76
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.76-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.76
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.76
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.76.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.76
  • Python: pip install tigerbeetle==0.16.76

Changelog

Features

  • #3556

    Expose CLI arguments to diagnose connectivity issues with AMQP and
    TigerBeetle during CDC.

    Users can now specify --amqp-timeout-seconds and --tigerbeetle-timeout-seconds
    (both default to 30), which define the maximum time to wait for a reply
    from AMQP and TigerBeetle respectively.

  • #3565

    Record request timing metrics for reserved VSR operations.

    This gives users visibility into the latency of client registrations (the
    first request a client sends to the cluster), using the register operation.

Internals

  • #3543

    Add tidy check to flag functions with length [71, 72], as per TigerStyle.

    This check intentionally incentivizes shortening the length to <=70 for
    functions that are just over, as a starting point towards the 70-line limit.

  • #3561,
    #3560,
    #3559,
    #3558

    Various documentation improvements.

  • #3552

    Use a fixed, high retry delay instead of exponential backoff to work
    around GitHub availability.

  • #3568

    Various refactors and debug logging improvements in compaction.

  • #3555

    Add logging to clarify the semantics of multiversion upgrade polling.

TigerTracks 🎧

ReleaseNotes_0 16 76

0.16.75: Merge pull request #3551 from tigerbeetle/release-2026-02-27

02 Mar 16:22
Immutable release. Only release title and notes can be modified.
2622547

Choose a tag to compare

0.16.75

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.75
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.75-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.75
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.75
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.75.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.75
  • Python: pip install tigerbeetle==0.16.75

Changelog

Safety And Performance

  • #3529

    Fix the fast path check for key_range_contains. Previously, the fast path would never be taken
    due to checking snapshot_latest incorrectly.

  • #3545

    Enable transparent huge pages on Linux - relieving TLB pressure and giving a nice little
    throughput bump!

Internals

  • #3549,
    #3547,
    #3538

    Rage against the (GitHub) Machine.

  • #3541

    Fix an overestimation of the number of index beats that will be generated by compaction.

TigerTracks 🎧

ReleaseNotes_0 16 75(1)

0.16.74: Merge pull request #3531 from tigerbeetle/release-2026-02-20

23 Feb 13:13
Immutable release. Only release title and notes can be modified.
c26247d

Choose a tag to compare

0.16.74

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.74
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.74-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.74
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.74
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.74.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.74
  • Python: pip install tigerbeetle==0.16.74

Changelog

Safety And Performance

  • #3528

    Add a replica test for an asymmetric partition where the primary can never receive
    messages, yet still does not abdicate. This test documents the current behavior,
    which must be fixed.

Internals

  • #3400

    Refactor LSM scan direction handling to simplify key comparisons in ascending
    and descending order.

  • #3518

    Reduce the internal I/O thread stack size of the TigerBeetle client to 512 KiB.

  • #3525

    Bump the minimum rustc version to 1.71 for building the TigerBeetle Rust client.

TigerTracks 🎧

image

0.16.73: Merge pull request #3524 from tigerbeetle/georg/release-0-16-73

16 Feb 12:35
Immutable release. Only release title and notes can be modified.
693c64b

Choose a tag to compare

0.16.73

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.73
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.73-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.73
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.73
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.73.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.73
  • Python: pip install tigerbeetle==0.16.73

Changelog

Safety And Performance

  • #3505

    Making AOF recovery deterministic, and prevent interference from non-aof-recovery requests.

  • #3508,
    #3516

    Improve Rust client testing.

Internals

  • #3511

    Strip tracking parameters from Spotify links.

  • #3517

    Include vortex zig driver executable in release artifacts,
    in preparation for multiversion testing in vortex.

  • #3522

    Add metrics tracking LSM write amplification.

  • #3523

    Reduce the frequency of metrics tracking in the message bus.

TigerTracks 🎧

image

0.16.72

10 Feb 13:02
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

0.16.72

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.72
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.72-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.72
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.72
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.72.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.72
  • Python: pip install tigerbeetle==0.16.72

Changelog

Safety And Performance

  • #3471

    Dramatically improve View Change time with a new FaultDetector that estimates
    the probability of a primary crash.

Features

  • #3484

    Track commit_timestamp and message_bus connections.

  • #3497
    #3421

    Add support for rotating AOF files without signals.

Internals

  • #3491
    #3496
    #3494
    #3490
    #3495
    #3489
    #3488

    Various documentation improvements and clarifications.

  • #3503

    Clarify that PR descriptions are ephemeral and do not replace well-written commit messages.

  • #3504

    Capture additional Vortex logs during end-to-end testing.

  • #3499
    #3501
    #3498

    Code cleanup and an increase in the maximum number of accounts supported by the benchmark.

TigerTracks 🎧

ReleaseNotes_0 16 71

0.16.70: Merge pull request #3487 from tigerbeetle/release-2026-01-31

02 Feb 15:31
Immutable release. Only release title and notes can be modified.
e0a34ed

Choose a tag to compare

0.16.70

Supported upgrade versions

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

Server

  • Binary: Download the zip for your OS and architecture from this page and unzip.
  • Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.70
  • Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.16.70-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.70
  • Go: go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.16.70
  • Java: Update the version of com.tigerbeetle.tigerbeetle-java in pom.xml
    to 0.16.70.
  • Node.js: npm install --save-exact tigerbeetle-node@0.16.70
  • Python: pip install tigerbeetle==0.16.70

Changelog

Safety And Performance

  • #3482

    Add basic tracing/metrics to event loop times. Also fix a bug in "max" timing metrics.

  • #3475

    Rewrite and improve performance of tree-of-losers k-way-merge implementation.

  • #3479

    Use callconv(.@"inline") for radix sort key_from_value function.

  • #3478

    Add --id-order=tbid to benchmark. This makes the benchmark more accurately resemble a
    real-world workload. Additionally, with this setting multiple runs of the benchmark will not
    encounter id collisions.

  • #3476

    Prefetch index blocks during compaction, so that we don't need to block waiting for the read.

Features

  • #3453

    Ensure public contract is stated in the tb_client header file.

Internals

  • #3480

    Make CFO crash less easily if fuzzer behaves unexpectedly.
    Also make local testing of CFO more similar to real CFO execution.

TigerTracks 🎧

ReleaseNotes_0 16 70