tigerbeetle
The TigerBeetle client for C# and .NET
0.17.9
8.8M downloads/mo
#2994 most downloaded on NuGet
tigerbeetle/tigerbeetle
What this package is like to depend on
Last release 1 months ago
06 Jul 2026
Ships on a steady schedule
a new release about every 2 weeks
Some releases are documented
notes for 84 of 299 stable releases
1 version withdrawn
withdrawn after publishing
127 years old
300 releases · first in 1900
31 releases in the last 12 months
see the full history below
Release timeline
300 releases · Jan 1900 to Jul 2026Releases
latest 60 of 300-
0.17.906 Jul 2026Release notes
Open source →Released: 2026-07-03
Safety And Performance
-
Revert unique keys, which caused compatibility issues (see #3802).
-
Extend
inspect constantsto catch schema changes and prints theCheckpoint Schedulesection. -
Micro-optimization to the radix sort algorithm to avoid copies when dealing with large stack-allocated values.
-
Online schema validation, ensuring coherent
key_min/key_maxwhen reading data.
Features
-
Improve the Ruby client migration guide.
-
Various docs improvements, including adding the Ruby client and print layout support.
-
Add a u128 bounds check in the Ruby client and make its status return type more idiomatic.
-
Improve the Rust client, removing the bitflags dependency and enabling overflow checks.
-
Experimental CLI
--memoryflag that automatically sizes the grid and object caches to use all assigned memory.
Internals
-
Improve various code comments.
-
Switch to
stdx.SocketAddress. -
Fail on curl instead of unzip for network flakes during Vortex builds.
-
Expose
TimeSimand fixtures in VSR. -
Introduce the canonical workload principle for benchmarks.
-
Make publishing TigerBeetle client artifacts idempotent.
-
Workaround MacOS builds on Zig 0.14.1 (see issue).
TigerTracks 🎧
-
-
0.17.822 Jun 2026Release notes
Open source →Released: 2026-06-19
Safety And Performance
-
Fix a bug in which the stash would overflow due to excess tombstones.
-
Fuzz scans over mutable secondary indexes, and fix an assertion.
-
Fix commit stall injection for clusters with 8 or more active clients.
Features
Internals
-
Add case conversion helpers to
stdx. -
Add
stdx.netwith IP address implementation. -
Add
FuzzIterationsabstraction to control fuzzer smoke test duration.
TigerTracks 🎧
-
-
0.17.715 Jun 2026Release notes
Open source →Released: 2026-06-12
Note: it is advisable to skip 0.17.6 and 0.17.7 and upgrade directly to 0.17.8 due to a potential crash. If you encounter the crash, it can be mitigated by temporarily increasing the object cache size. See #3802.
Safety And Performance
-
Significantly improve the TigerBeetle REPL parser. Ensure that users see correct and useful error messages, and fix some inconsistencies.
Introduce snapshot testing and proper fuzzing, which allowed fixing some latent parsing bugs.
Internals
-
Replace
hatchlingas the TigerBeetle python client packager with our own zig wheel builder, which allows reproducible builds without dependencies. -
Allow passing timeouts for all shell operations called from zig tooling.
-
Ensure CI release and release validation jobs don't run concurrently to reduce flakes induced by CI job race conditions.
TigerTracks 🎧
-
-
0.17.608 Jun 2026Release notes
Open source →Released: 2026-06-05
Note: it is advisable to skip 0.17.6 and 0.17.7 and upgrade directly to 0.17.8 due to a potential crash. If you encounter the crash, it can be mitigated by temporarily increasing the object cache size. See #3802.
Safety And Performance
-
Fix resource leak & potential overflow in the .NET, Java, and Go clients.
Thank you @jf-li00 for spotting these!
-
Substantially reduce tail latency by performing compaction merge incrementally as opposed to a single big merge at the end of the bar.
-
Make space for replica connections on the
acceptpath, evicting clients or random peers that may be hogging TCP connections. -
Various improvements to the ping-pong protocol between the client and cluster.
Specifically, clients now proactively send a ping while registering a session with the cluster (as opposed to waiting 30 seconds), and the cluster may now respond with an eviction message when a ping is received (as opposed to waiting for the next request from an evicted client).
-
Improve fuzzing around LSM tree deletions on the lookup path, which now checks for tombstones.
-
Guarantee that the StateMachine works on cache-line-aligned buffers; callers can take advantage of this alignment to efficiently reinterpret the bytes.
Internals
-
Ban the usage of
std.fmt.parseInt, which is useful for interactive use-cases like CLI/REPL, but a bit too permissive for protocols.
TigerTracks 🎧
-
-
0.17.501 Jun 2026Release notes
Open source →Released: 2026-05-29
Note: it is advisable to skip 0.17.5 and upgrade directly to 0.17.8 due to a potential crash on upgrade (see #3808).
Safety And Performance
-
Fix a possible Node.js integer overflow panic.
-
Fix a potential crash in the I/O event listener.
-
Correct assertions in the code.
-
Run DISCARD when formatting a block device on Linux, improving SSD performance.
-
Replace Java's assert keyword with
AssertionError.assertTrueto prevent silent failures. -
Refactor the grid to own all blocks through reference counting.
-
Inject stalls on the primary more accurately by observing a backup's
op - commit_min, improving throughput. -
Fan out VSR prepare timeout retries.
-
Explicitly fail on invalid enum values in AMQP parsing per Swival security audit recommendation.
-
Add an assertion to
CheckpointTrailer.openas per Swival security audit recommendation.
Features
-
Add a Ruby client. Thanks @citizen428!
-
Switch from
ArenaAllocatortoDebugAllocatorto fixArenaAllocatorrounding up allocations by large amounts.
Internals
-
Improve the names of some VSR commands.
-
Make release validation run from
main, making it easier to fix when release validation fails. -
Move
shell.zigintostdx, making it more robust for different zig project setups. -
Show the freshness of performance results in DevHub.
-
Cleanup
Timeusage and dropstd.time.Timeruses ahead of its removal in Zig 0.16. -
Raise the clock-skew warning threshold from 1ms to 50ms to prevent CI flake.
-
Introduce configurable primary keys and multiple unique keys to LSM Forests. This enables querying two-phase transfers by
pending_id. -
Fix various tb_client issues, enable Rust client CI on Windows.
-
Remove the
cancel_allfeature used to shutdown tb_client on Linux, instead terminate message bus connections explicitly. -
Dial up concurrency in the Node.js client test to reliably race
destroyagainstcreate. -
Fix flaky Vörtex and Windows cache CI failures.
TigerTracks 🎧
-
-
0.17.411 May 2026Release notes
Open source →Released: 2026-05-08
As of TigerBeetle 0.17.4, the minimum required Linux kernel version is 5.11.
Safety And Performance
-
Refactor and simplify the Linux IO event loop, by directly embedding a timeout when calling
io_uring_enter, makingnext_ticka top level function (instead of executing all callbacks back to back) and reentering the kernel after each callback.Combined, these changes give a ~8% improvement on the standard benchmark, improve tail latencies in certain edge cases, as well as prevent tick starvation under heavy load or slow disks.
-
Fix a bug in reformat caused by invoking
IO.runfrom withinIO.run_for_ns. -
Track the object caches as metrics, to help with sizing (e.g.,
--cache-accounts). -
Fix file permissions to no longer ask for world readable/writable files when creating them. Normally, this does get prevented by the default
umask.
Internals
-
Add warnings when the event loop is slow.
-
Cache the Zig download for test workflows, add the flake count to Devhub and miscellaneous CI fixes.
TigerTracks 🎧
-
-
0.17.304 May 2026Release notes
Open source →Released: 2026-05-01
Safety And Performance
-
Switch replication strategy from adaptive replication routing to star.
Star replication involves the primary broadcasting prepares to all backups and handles network jitter better, leading to lower p100 latencies in cross-region deployments.
-
Guard against supply-chain attacks via GitHub actions by pinning them to the latest commit SHAs.
-
Recompute the checksum body only for operations that modify the body.
-
Simplify the control flow of Zig-Zag merge using galloping search, to drain the keys and avoid rebuilding the tree multiple times.
Internals
-
Workaround various flakes caused by GitHub actions.
Specifically, actions cache flakes on Windows, and
gh run listsometimes returns no response. -
Fix a flaky client test due to an overly conservative timeout for expiring transfers.
-
Make release validation work cross-platform.
-
Fix the Go client documentation for posting/voiding pending transfers.
TigerTracks 🎧
-
-
0.17.227 Apr 2026Release notes
Open source →Released: 2026-04-24
Safety And Performance
-
When a replica sends a message to itself, copy in message body before computing
checksum_bodyandchecksum.
Features
-
Track
value_count_visibleas a metric, per tree. This is useful for counting the number of accounts/transfers in the database.
Internals
-
Test that checksum works on unaligned data.
TigerTracks 🎧
-
-
0.17.120 Apr 2026Release notes
Open source →Released: 2026-04-17
Safety And Performance
-
Make VSR repair less eager, cutting
request_preparetraffic by ~70-80% andrequest_headersby ~80-90% for minor overhead. -
Improve compaction table-selection from
O(a * log b)toO(a + b), especially noticeable at 20TB+.
Internals
-
Refactor
stdx.flagsto own its allocator and return trailing--args as a slice. -
Rename VSR view-change messages:
DoViewChange->JoinView,StartView->View,StartViewChange->ExitView. -
Re-enable VOPR in CI.
-
Increase tick budget for the Vortex upgrade/recover test, which was occasionally timing out.
-
CI: fetch git tags in the
release-validatejob. -
Docs: drop an overly wide comparison table from the API changes page.
-
Docs: remove references to the retired Startup Program.
-
Clean up TigerTracks in CHANGELOG.md by only using song titles.
TigerTracks 🎧
-
-
0.17.013 Apr 2026Release notes
Open source →Released: 2026-04-10
This release improves
create_accountsandcreate_transfersoperations. 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
-
Improve repair performance by tracking per-replica repair budgets, to prevent a slow replica from tying up the global budget.
-
Add randomness to repair timeouts and faulty block iteration, to guard against resonance liveness bugs.
-
Test cluster upgrades using real TigerBeetle binaries in Vortex.
Features
-
Change the return type and semantics of the
create_{accounts,transfers}. -
Add the API changes page to the docs: https://docs.tigerbeetle.com/coding/api-changes.
-
Remove default initialization from Python client's
AccountFilterandQueryFilter. -
Querying with a
limitwhich would not fit in the maximum message size now fails withTooMuchDatain the client, rather than silently truncating results. -
Add metric tracking recent client min/max releases seen by the cluster.
-
Fix several bugs in the
client_request_round_tripmetric. -
Make the Golang client API more idiomatic using
*big.Int. -
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
-
Cache Zig compiler on CI.
-
IO/Linux: Add another attempt to the flock() retry loop.
-
Various Vortex and CFO fixes.
-
Docs: Clarify the number of replicas required for upgrades.
-
Docs: Fix a flipped account flag in
balance-invariant-transfers.md.
TigerTracks 🎧
-
-
0.16.7823 Mar 2026Release notes
Open source →Released: 2026-03-20
Safety And Performance
-
Fix an over-tight assert -- we may still be writing non-repair blocks at the start of checkpointing.
-
Fix a potential liveness issue where we try to repair a block while simultaneously writing to it.
Internals
-
tigerbeetle inspect constantsnow prints out the number of Transfers per table. -
#3579, #3589, #3591, #3584, #3594
Fix the CI release validation job.
-
Refactor our iops.zig to a more appropriate home in stdx.
TigerTracks 🎧
-
-
0.16.7716 Mar 2026Release notes
Open source →Released: 2026-03-13
Note: it is advisable to skip 0.16.77 and upgrade directly to 0.16.78, due to potential liveness issues (see #3581 and #3586).
Safety And Performance
-
Rework how eviction is signaled in
tb_clientto avoid race conditions between eviction and shutdown, unify notification logic, and add assertions for running on the correct thread. -
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%.
-
Allow the grid to serve reads directly from write queues, improving performance for blocks being currently repaired or created.
-
Work around a miscompilation in Zig's LLVM backend by downcasting alignment in
stdx.equal_bytes.
Internals
-
Prepare the Rust client for release by removing dependencies (
anyhow,futures-channel), and setting up automated release builds (not enabled yet). -
Fuzz updates on
CompositeKeys, identifying a bug in a proposed prefix-only sort optimization. -
Add a new metric to track time spent on CPU work, specifically callbacks.
-
Tighten units for IOPS, concurrency, and durations in config.
-
Fix worst case sizing and add prefetch in the scan fuzzer, to mirror state machine logic.
TigerTracks 🎧
-
-
0.16.7609 Mar 2026Release notes
Open source →Released: 2026-03-06
Features
-
Expose CLI arguments to diagnose connectivity issues with AMQP and TigerBeetle during CDC.
Users can now specify
--amqp-timeout-secondsand--tigerbeetle-timeout-seconds(both default to 30), which define the maximum time to wait for a reply from AMQP and TigerBeetle respectively. -
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
registeroperation.
Internals
-
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.
-
Various documentation improvements.
-
Use a fixed, high retry delay instead of exponential backoff to work around GitHub availability.
-
Various refactors and debug logging improvements in compaction.
-
Add logging to clarify the semantics of multiversion upgrade polling.
TigerTracks 🎧
-
-
0.16.7502 Mar 2026Release notes
Open source →Released: 2026-02-27
Safety And Performance
-
Fix the fast path check for
key_range_contains. Previously, the fast path would never be taken due to checkingsnapshot_latestincorrectly. -
Enable transparent huge pages on Linux - relieving TLB pressure and giving a nice little throughput bump!
Internals
-
Rage against the (GitHub) Machine.
-
Fix an overestimation of the number of index beats that will be generated by compaction.
TigerTracks 🎧
-
-
0.16.7423 Feb 2026Release notes
Open source →Released: 2026-02-20
Safety And Performance
-
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
-
Refactor LSM scan direction handling to simplify key comparisons in ascending and descending order.
-
Reduce the internal I/O thread stack size of the TigerBeetle client to 512 KiB.
-
Bump the minimum
rustcversion to 1.71 for building the TigerBeetle Rust client.
TigerTracks 🎧
-
-
0.16.7316 Feb 2026Release notes
Open source →Released: 2026-02-13
Safety And Performance
-
Making AOF recovery deterministic, and prevent interference from non-aof-recovery requests.
-
Improve Rust client testing.
Internals
-
Strip tracking parameters from Spotify links.
-
Include vortex zig driver executable in release artifacts, in preparation for multiversion testing in vortex.
-
Add metrics tracking LSM write amplification.
-
Reduce the frequency of metrics tracking in the message bus.
TigerTracks 🎧
-
-
0.16.7210 Feb 2026Release notes
Open source →Released: 2026-02-06
Safety And Performance
-
Dramatically improve View Change time with a new
FaultDetectorthat estimates the probability of a primary crash.
Features
-
Track
commit_timestampandmessage_busconnections. -
Add support for rotating AOF files without signals.
Internals
-
#3491 #3496 #3494 #3490 #3495 #3489 #3488
Various documentation improvements and clarifications.
-
Clarify that PR descriptions are ephemeral and do not replace well-written commit messages.
-
Capture additional Vortex logs during end-to-end testing.
-
Code cleanup and an increase in the maximum number of accounts supported by the benchmark.
TigerTracks 🎧
-
-
0.16.7101 Jan 1900 withdrawnNothing published for this version
-
0.16.7002 Feb 2026Release notes
Open source →Released: 2026-01-31
Safety And Performance
-
Add basic tracing/metrics to event loop times. Also fix a bug in "max" timing metrics.
-
Rewrite and improve performance of tree-of-losers k-way-merge implementation.
-
Use
callconv(.@"inline")for radix sortkey_from_valuefunction. -
Add
--id-order=tbidto 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. -
Prefetch index blocks during compaction, so that we don't need to block waiting for the read.
Features
-
Ensure public contract is stated in the
tb_clientheader file.
Internals
-
Make CFO crash less easily if fuzzer behaves unexpectedly. Also make local testing of CFO more similar to real CFO execution.
TigerTracks 🎧
-
-
0.16.6926 Jan 2026Release notes
Open source →Released: 2026-01-23
Features
-
Document client cancellation policy.
-
Move ARCHITECTURE.md up in the docs hierarchy. It's a part of internal docs, but is well worth reading for anyone curious about TigerBeetle internals!
Safety And Performance
-
Enable history by default for
tigerbeetle benchmark. Argument-lessbenchmarkcaptures our current understanding of a representative workload, so the results are not guaranteed to be comparable acrosstigerbeetleversions.
Internals
-
Tighten up CLI parsing to forbid accidentally allowed signs. E.g,
--cluster=+0is now an error. -
Make experimental AOF feature a run-time, rather than compile-time flag.
-
Simplify debugging devhub by cloning (but not pushing) devhub-db during local development.
-
Use
--cache-gridto reduce memory in tests of Rust client. -
Simplify state machine by using actual op number instead of symbolic
snapshot_latestfor LSM lookups.
TigerTracks 🎧
-
-
0.16.6812 Jan 2026Release notes
Open source →Released: 2026-01-09
Safety And Performance
-
Fix a potential resource leak in
SegmentedArrayduring initialization failure.
Features
-
Rust client: Display platform information in the error message when attempting to run on unsupported platforms.
-
Node client: Switch to
process.report.getReport()for more reliable Musl libc detection.
Internals
-
Docs: Clarify the prose in the balance-invariant transfer recipe.
-
Refactor
DateTimeUTCtoInstantUnixfor tracking real, non-monotonic time. -
Refactor Vörtex network handling.
-
Remove confusing "slow request" warning from VSR logs.
-
Improve logging consistency for headers and checksums. Thanks @fdesu!
-
Various microbenchmark improvements for checksums, k-way-merge, and binary search.
-
stdx: Removestream_precedence, improve shuffle implementation robustness, and document monotonicity ofInstant. -
CI and Build: Reduce Java flakiness, remove APK workarounds, simplify release validation, and deduplicate
tb_clientbuilds. -
Devhub: Throw
Errorinstead ofStringin asserts, and support more units. -
Minor fixes, tidy ups, and documentation improvements. Thanks @dsp and @amiraliakbari!
TigerTracks 🎧
-
-
0.16.6715 Dec 2025Release notes
Open source →Released: 2025-12-12
Safety And Performance
-
Speed up VOPR storage and network during liveness mode for fast convergence, to avoid false positives.
-
Don't discard high 16 bits of timestamp when generating ID's with the Node.js client.
-
Relax VOPR condition for truncating acked ops to prevent false positives.
-
Implement a micro-benchmarking harness, to protect the benchmarks from bitrot.
Features
-
Add more documentation details around query multibatching.
Internals
-
Make
Pending!?Valuethe canonical stream signature. This type is chosen because it is the orthogonal composition of iteration and asynchrony. -
Prevent "out (disk) of space" failures during CI.
-
Make DSL for parsing positional CLI flags more natural.
-
Remove dead code from zig-zag merge join.
-
Improve how Vörtex handles SIGTERM.
-
Improve the way we handle ratios in stdx, and refactor
parse_flag_value. -
Update TigerStyle with more context for the line and function length limits.
-
Improve some spelling and grammar in
start.md. Thanks @elness!
TigerTracks 🎧
-
-
0.16.6624 Nov 2025Release notes
Open source →Released: 2025-11-21
Safety And Performance
-
Fix non-monotonic ID generation in the Python client. Thank you for spotting this, @rbino!
Internals
-
Introduce
op_checkpoint_syncto simplify assertions during state sync. -
Run Vörtex in CFO (Continuous Fuzzing Orchestrator).
-
Various fixes for Vörtex in CFO.
TigerTracks 🎧
-
-
0.16.6517 Nov 2025Release notes
Open source →Released: 2025-11-14
Safety And Performance
-
Fix overzealous assertion that didn't account for state sync while accepting start view headers.
Internals
-
Various MessageBus refactors to reduce code bloat.
Earlier, the connection and message passing logic was spread out across the MessageBus and Connection types. Now, all that logic is contained within the MessageBus type, with Connection only maintaining connection state between two peers.
-
Fix bug in cut_suffix wherein the suffix itself was being returned instead of the prefix.
-
Make IO file descriptor a Zig optional, as opposed to using INVALID_SOCKET.
-
Add support for canceling individual inflight IO operations on Linux.
Earlier, Linux IO only allowed canceling all asynchronous in-flight operations.
TigerTracks 🎧
-
-
0.16.6410 Nov 2025Release notes
Open source →Released: 2025-11-07
Internals
-
Parametrize code over
Operationrather than the entireStateMachine. 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. -
Remove
usizefrom constants, scans and CLI arguments. -
Remove
StateMachine's dependency on a specificStateMachineConfigand rather use the global constants. -
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.6303 Nov 2025Release notes
Open source →Released: 2025-10-31
Safety And Performance
-
Allow backups to accept prepares from the next checkpoint when they replace already committed prepares.
-
Assert the size of
HeadersandStartViewmessages. -
Correctly reset the
pulse_next_timestamp. -
Disable
config.verifyin release builds, while promoting several assertions gated byverifyto regular assertions. -
Fix an unhandled error on unreachable networks that could cause liveness issues. Also ban all usage of
posix.send()in favor ofposix.sendto(). -
Free up about 300MiB of memory by sharing the same buffer for in-place radix sort.
Features
-
Clarify that the
TBID, which is au128number, only specifies the bit layout. -
Introduces
tigerbeetle inspect integrityto verify offline that a data file is uncorrupted. -
Prepare the Rust client for publication.
Internals
-
Improve duration parsing by removing ambiguous units and adding fuzz tests.
-
Update data file documentation to correctly state the grid block size as 512 KiB.
-
Clarify the release process in case a version of TigerBeetle is skipped.
-
Fix invalid payload references after modifying the active tag in a tagged union.
-
Remove unnecessary deduplication logic when scanning from memory tables, since #2592 already introduced deduplication during sorting.
-
Reserve the maximum release version (65535.x.x) for testing clusters (
cluster_idzero). -
#3342, #3338, #3330, #3347, #3341
Various Vortex and CFO improvements.
-
Fix the build command for clients in HACKING.md and other typos. Thanks @gharbi-mohamed-dev!
TigerTracks 🎧
-
-
0.16.6220 Oct 2025Release notes
Open source →Released: 2025-10-17
Safety And Performance
-
Enable VOPR to detect when the message limit is exceeded.
-
Enable unit tests for deprecated operations.
-
Improve the release process by publishing to npm via trusted publishers.
Features
-
Rephrase the "debits first" explanation in documentation.
Internals
-
Refactor the message bus to save memory and tighten explicit
SendQueuelimits. -
Implement
BoundedArrayfrom scratch. -
Remove needless use of bounded array from REPL.
-
Refactor and cleanup Vortex.
TigerTracks 🎧
-
-
0.16.6106 Oct 2025Release notes
Open source →Released: 2025-10-03
Safety And Performance
-
Speed up cluster repair by adapting the pace and distribution of repair requests according to observed network conditions.
-
Speed up cluster repair by not delaying execution of committed prepares until the log is fully repaired.
-
Add a dedicated fuzzer for
MessageBus.
Features
-
Add
--log-tracefor extra verbose logging. -
After successfully adding a test that tests in #3136, we doubled down on this strategy and are adding a metric for tracking metrics.
Internals
-
Use ISO4217 three-letter codes when writing about currencies (so,
USDover$). -
Clean up Adaptive Replication Routing implementation.
-
Speed up
zig build testby removing false build-time dependencies.
TigerTracks 🎧
-
-
0.16.6029 Sep 2025Release notes
Open source →Released: 2025-09-26
Safety And Performance
-
Remove a copy from the StateMachine.
-
Update the k-way-merge to use the new
from_seed_testing(). -
Improve metrics to use a reduce the worst case packet count (and benefit from a small memory saving while we're at it).
Features
-
Clarified documentation on closing accounts and two-phase transfers. Thanks @raui100!
Internals
-
Refactor references to old time types to use the Instant and Duration types.
-
Added documentation for our CI entrypoint:
zig build ci.
TigerTracks 🎧
-
-
0.16.5922 Sep 2025Release notes
Open source →Released: 2025-09-19
Safety And Performance
-
Introduce Least Significant Digit (LSD) radix sort in stdx.
-
Use radix sort in the memory tables to get more performance improvements.
-
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
-
Use Zig's new
std.testing.random_seedto introduce genuine randomness in tests. -
Fix a crash due to corruption and misdirection found by the WIP message bus fuzzer.
TigerTracks 🎧
-
-
0.16.5815 Sep 2025Release notes
Open source →Released: 2025-09-12
Safety And Performance
-
Fix a bug where grid.cancel was erroneously being invoked during commit_stage=checkpoint_durable.
-
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.
-
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.
-
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
-
Introduce
--requests-per-second-limitto throttle CDC requests to TigerBeetle.Usage for this option is orthogonal to
--idle-interval-msand--event-count-max, allowing fine-tuning for low latency without overflowing the AMQP target queue. -
In order to avoid bimodality if a replica is down (e.g., 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
-
Mark grid cache blocks as MADV_DONTDUMP, making core dump size tractable even with large caches.
-
Preparation for the Zig 0.15.1 upgrade.
-
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 🎧
-
-
0.16.5701 Sep 2025Release notes
Open source →Released: 2025-08-29
Safety And Performance
-
Improved performance in
set_associative_cache.zigby using Fastrange and SIMD. -
Improved performance and better codegen in
aegis.zigby avoiding aliasing. -
Retain table repair progress across checkpoint boundaries, to reduce the time to complete state sync for active clusters.
-
Use the
NOSIGNALflag with both asynchronoussendand synchronoussend_now. This avoids receiving a possibleSIGPIPEsignal raised by the kernel. -
Improve the Rust client API to make the returned future thread-safe. Thanks @michabp!
-
Fix the Go client to make the subfolder with external files required by CGO compatible with
go vendor. Thanks @itzloop. -
Fix the Python client to make
close()async onClientAsync.
Internals
-
Removed support for closed loop replication in repair and sync protocols.
-
Ban equality and inequality comparisons with
errorvalues, as they may silently perform an untyped comparison. Enforce handling errors withswitchblocks instead. -
Consolidate all Windows APIs we use (not present in Zig’s
std) understdx.windows. -
Improve upgrade tests.
-
Improve the documentation to explain adaptive routing and add notes about using CDC in production.
-
Moves the
unsharecode intostdx.unshareand uses it for both Vortex and CFO. Also fixes howvortex runwas handling the child process error code.
TigerTracks 🎧
-
-
0.16.5625 Aug 2025Release notes
Open source →Released: 2025-08-22
Safety And Performance
-
Improve the speed of trailer repairs by initiating repair requests more proactively.
-
Add Vortex to CI to test clients (Java, Zig, Rust).
-
Ensure only the primary responds to VSR repeat requests.
Features
-
Add a typed Python client (thanks @stenczelt).
Internals
-
Simplify budgeting for VSR repairs.
-
Refactor
ReleaseListto contain the release logic. -
Improve naming for journal and grid message budgets.
TigerTracks 🎧
-
-
0.16.5518 Aug 2025Release notes
Open source →Released: 2025-08-15
Safety And Performance
-
Make repair timeout reliably fire in a loaded cluster processing small batches.
-
Make
tigerbeetle formatconcurrent and only write essential data. This speeds up the time to format considerably. -
Cache prepares from the future, to help avoid needing to repair the WAL near checkpoints when a backup is a little behind primary.
Features
-
Don't unlink data file on formatting failure.
-
Use correct default statsd port (8125).
-
Remove translation logic from old checkpoint state to new. Note that this means that
tigerbeetle inspectwill no longer decode superblocks from 0.16.25 or older, until they are upgraded to at least 0.16.26.
Internals
-
Improvements to the balance bounds, rate limiting, and two phase transfers recipes. Thanks @snth!
-
Use true quine to generate unit tests.
-
Drop
SigIllHandler. This was supposed to print a nice error message on unsupported architectures, but we hitSigIllin Zig's_start, before we get to ourmain. -
Add constants for KiB thru PiB.
TigerTracks 🎧
-
-
0.16.5411 Aug 2025Release notes
Open source →Released: 2025-08-08
Safety And Performance
-
Speed up repair by removing a round-trip to fetch headers.
-
Check checksums when downloading Zig during the build.
Features
-
Add documentation for Rust client library.
-
Test that release artifacts are fully reproducible.
Internals
-
Add a test to test that tests include all the tests.
-
Remove local variable aliasing as per TigerStyle.
-
@splatall the things. -
Use double-entry accounting for allocations.
-
Remove
git-review. -
Show total number of VOPR runs for release.
TigerTracks 🎧
-
-
0.16.5304 Aug 2025Release notes
Open source →Released: 2025-08-01
Safety And Performance
-
Allowing EWAH to decode bigger free set into smaller. This fixes the
--limit-storageflag. -
Fix Node.js v24 client.
Features
-
Add compaction/checkpoint/journal slot count to
tigerbeetle inspect.
Internals
-
During tests, verify that grid read errors correspond to either storage faults or ongoing state sync.
-
Teach snaptest how to decode/encode hex & zon.
-
Fix typo in
manifest_log_fuzz. -
Test
CreateTransfersResult.existsin VOPR. -
stdxrefactoring.
TigerTracks 🎧
-
-
0.16.5228 Jul 2025Release notes
Open source →Released: 2025-07-25
Safety And Performance
-
Improve repair performance by tracking requested prepares so each is repaired exactly once per timeout.
Internals
-
In VOPR, model events using nanosecond-resolution timestamps to uncover more interesting interleaving.
-
Initialize
IOandTracerearly. Avoid comptime type specialization. -
Update TigerStyle with additional conventions for naming things and ordering struct fields.
-
Add
--requests-maxCLI flag to VOPR. -
In DevHub, use
font-size-adjustto better match sizes of sans and monospace text. -
Introduce a fixtures module for fuzzing and testing to avoid code duplication.
TigerTracks 🎧
-
-
0.16.5121 Jul 2025Release notes
Open source →Released: 2025-07-18
Safety And Performance
-
Fix incorrect assert in the commit stall logic.
This assert could cause the primary to crash while it is injecting a commit stall, if an old primary has committed ahead of it.
-
Improve compaction scheduling algorithm to be more performant and memory efficient.
Earlier, during each beat, we used to compact each active tree and level, leading to multiple context switches. Now, we compact each tree and level to completion before moving on to the next.
Features
-
Add metrics that track the time taken to complete read and write IO.
Internals
-
Remove comptime type specialization on Time and replace it with a runtime interface.
-
Change all instances of data block -> value block, more aptly named for blocks containing values.
-
Update architecture documentation to explain how to correctly integrate TigerBeetle into a larger data processing system.
-
Fix example for voiding pending transfers in the dotnet, go, node, and python clients.
-
Fix broken link to the Viewstamped Replication paper and some typos in the documentation.
-
Fix VOPR false positive where we erroneously find two different versions of an uncommitted header.
-
Refine BoundedArrayType API, renaming functions to be shorter and consistent with Queue and Stack.
TigerTracks 🎧
-
-
0.16.5015 Jul 2025Release notes
Open source →Released: 2025-07-13
Internals
-
Cleanup Zig TODO items that have been resolved with the recent upgrade to Zig 0.14.1.
-
Always copy fields from
vsr_optionstobuild_options, since Zig 0.14.1 removed anonymous structs. Thanks @rbino! -
Use realtime to enforce budget and refresh timeouts in the CFO.
-
Remove
unwind_tablesfrom release builds and strip client libraries to reduce binary size.
TigerTracks 🎧
-
-
0.16.4907 Jul 2025Release notes
Open source →Released: 2025-07-04
Safety And Performance
-
Fix a division by zero when logging CDC metrics, and increase resolution to nanoseconds.
-
Apply backpressure at primary to mitigate an issue with lagging backups.
Internals
-
Upgrade to Zig 0.14.1.
-
Fix a typo that caused probabilities to be parsed as hexadecimal.
TigerTracks 🎧
-
-
0.16.4801 Jul 2025Release notes
Open source →Released: 2025-07-01
Internals
-
Updates the publishing process for the Java client to conform to the Maven Central Repository due to the OSSRH service end-of-life.
-
Fixes and improvements for tracing and metrics.
TigerTracks 🎧
-
-
0.16.4730 Jun 2025Release notes
Open source →Released: 2025-06-27
Note: This release is missing some client libraries in their respective package managers.
Safety And Performance
-
Fix ABI assertions in Rust client.
-
Swarm test different replication configurations in VOPR.
-
Supports CDC processing for transfers created by versions earlier than
0.16.29. Fixes a liveness bug that would crash the replica if a CDC query encountered objects created with a schema before #2507.
Features
-
Add
client_request_round_tripmetric to track end-to-end client request latency. -
Support
--clientsalongside--transfer-batch-delay-usintigerbeetle benchmark. -
The command
tigerbeetle inspect constantsprints VSR queue sizes.
Internals
-
Define timeouts in terms of
tick_ms. -
Disable "hint" argument for mmap call, which was observed to cause stack overflow.
TigerTracks 🎧
-
-
0.16.4623 Jun 2025Release notes
Open source →Released: 2025-06-19
Safety And Performance
-
Always build tb_client for Rust client in release mode.
Internals
-
Prioritize more important fuzzers in CFO.
TigerTracks 🎧
-
-
0.16.4516 Jun 2025Release notes
Open source →Released: 2025-06-13
This release changes the CDC message header to use AMQP signed integers. The new encoding will be handled transparently by RabbitMQ/AMQP clients. However, code changes might be necessary if the consumer explicitly relies on the unsigned data type.
Safety And Performance
-
Fix a liveness bug related to when replicas are syncing.
-
Fix a crash related to timing when measuring commit timing.
Features
-
Add documentation on how to monitor TigerBeetle, track requests end-to-end for better monitoring.
-
Improves compatibility of our new CDC connector by supporting AMQP signed integer types, and fixes an assertion that previously overlooked the possibility of receiving an asynchronous
basic_ackwhile publishing a batch of messages. Thanks @alvinyan-bond for your feedback!
Internals
-
Add a recovery smoke test.
TigerTracks 🎧
-
-
0.16.4409 Jun 2025Release notes
Open source →Released: 2025-06-06
Features
-
Improve logging for missing replies by including the op number.
Internals
-
DevHub now displays how many fuzz runs are executed per minute (VPM).
-
Remove
clusterfrom the MessageBus as part of the MessageBuffer rework. -
Handle all message padding uniformly.
-
Limit the fuzzer processes to 20GiB of RAM.
-
Prevent stack probing from actually using all of the stack due to unexpected inlining.
TigerTracks 🎧
-
-
0.16.4302 Jun 2025Release notes
Open source →Released: 2025-05-30
This release includes the
tigerbeetle recoversubcommand, which can be used to safely recover a replica that is permanently lost.Additionally, it includes Change Data Capture (CDC) support to stream TigerBeetle state to Advanced Message Queuing Protocol (AMQP) targets, such as RabbitMQ and other compatible brokers.
Check out the documentation to learn about how to use CDC and
tigerbeetle recover!Safety And Performance
-
Add the
tigerbeetle recoversubcommand, to safely recover a replica that is permanently lost (e.g. if the SSD fails).Earlier, the only way to recover a permanently lost replica was using the
tigerbeetle formatcommand. However, this was unsafe, as a newly-formatted replica may nack prepares which its previous incarnation acked -- a correctness bug. -
Implement an adaptive replication routing protocol to handle changes in network topology.
To select the best route, primary uses outcome-focused explore-exploit approach. Every once in a while, the primary tries an alternative route, and replaces the current route if the alternative provides better replication latency.
-
Replica pulls messages from the MessageBus, as opposed to the MessageBus pushing messages.
Earlier, replicas had to process every message that the bus pushed. This could lead to messages being dropped due to lack of available disk read/write IOPs. Now, a replica can "suspend" certain messages and return to them later when it has enough IOPs.
Features
-
CDC support to stream TigerBeetle state to AMQP targets, such as RabbitMQ and other compatible brokers.
We implement the AMQP 0.9.1 specification instead of AMQP 1.0 as it is simpler and more widely supported (e.g., RabbitMQ only recently added native AMQP 1.0 support).
Internals
-
Unify the production and testing AOF code paths to make sure the production AOF is rigorously fuzzed by the VOPR.
-
Reduce code duplication while erasing IO callbacks' type.
-
Track debug build times on DevHub.
-
Miscellaneous improvements and fixes to CI and release.
TigerTracks 🎧
-
-
0.16.4226 May 2025Release notes
Open source →Released: 2025-05-23
Safety And Performance
-
Fix assert in
fulfill_block, if a replica receives a block that it didn't ask for from a newer replica.
Internals
-
Extract the parsing parts of MessageBus into a sans-IO style ReceiveBuffer, that'll be used for the upcoming pull based MessageBus.
-
Speed up the LSM scan fuzzer.
TigerTracks 🎧
-
-
0.16.4119 May 2025Release notes
Open source →Released: 2025-05-16
Safety And Performance
-
Implement request throttling for grid repair, making state sync less chatty over the network.
-
Improved latency and throughput in prepare repair operations.
Internals
-
Make the Quick Start page more direct by showing only the installation instructions for Linux by default, with Windows and macOS hidden behind click-to-expand sections.
-
New
tigerbeetle inspect opcommand that displays checkpoints and triggers surrounding a givenopnumber.
TigerTracks 🎧
-
-
0.16.4012 May 2025Release notes
Open source →Released: 2025-05-09
Safety And Performance
-
Fix AOF
unflushedassertion. -
Decouple prepare repair from header breaks. This helps a replica repair faster, and prevents a case where we would request a prepare only to discard it when it arrives.
-
Bump default journal write iops. Previously we were inadvertently throttling repair by not allocating enough.
-
Primary now broadcasts
start_viewmessage on checkpoint durability. This will help syncing replicas update to the latest sync target as early as possible. -
Add assert to check return value of
next_batch_of_block_requests.
Features
Internals
-
Add subcommand to
git-reviewto send review comments as a email. -
Add subcommand to
git-reviewto split suggested code changes out of a review commit. -
Speed up fuzz smoke tests.
-
Improve memory usage of tests 10x and test runtime 10x.
-
Add arbitrary debug output to CFO seeds.
-
Fix for multiple CFO branches on same commit.
-
Reduce closed loop replication quorum from
nton-1.
TigerTracks 🎧
-
-
0.16.3905 May 2025Release notes
Open source →Released: 2025-05-02
Heads up, we are changing our release process! From this point on, a TigerBeetle release is tagged on Friday, spends a weekend on the CFO fleet, and is published on Monday. In other words, you'll still be getting a new release every Monday, but the date of the release will be set to Friday. This setup allows extra time for fuzzers to find problems in the specific commit we are trying to release.
Safety And Performance
-
Continuously fuzz the release branch, in addition to the main branch and the pull requests.
-
Eagerly deinitialize clients upon eviction, to proactively sever TCP connections to replicas.
Features
-
Add an initial Rust client. Note that it is not published to crates.io yet.
Internals
-
Reduce verbosity when running full CI suite locally.
TigerTracks 🎧
-
-
0.16.3828 Apr 2025Release notes
Open source →Released: 2025-04-28
Safety And Performance
-
Switch to using gpa as backing allocator for clients.
-
Set socket options for peer connections.
-
Add
tb_client_init_parametersand implement for Python client.
Features
-
Fix
tigerbeetle inspect gridfor data files with no used blocks.
Internals
-
CI improvements.
-
De-genericify
Queue. -
Modernize
stdx.cutAPI -
Trial a git-native + offline-first code review interface.
-
Devhub improvements. In particular, ensure that a failing canary fuzzer is obvious.
-
Compile scripts for
zig build ci.
TigerTracks 🎧
-
-
0.16.3721 Apr 2025Release notes
Open source →Released: 2025-04-21
Safety And Performance
-
Fix a bug where VOPR latencies were computed incorrectly when the minimum and mean were equal.
Internals
-
Improve binary size and compilation time by making implementation of intrusive stack non-generic.
-
Make the Docs website pass the W3C HTML validation test.
-
Fix a memory leak in VOPR and apply idiomatic naming conventions for the allocator.
-
Fix a panic where the VOPR attempts to print a deinitialized packet when debug logs are enabled.
TigerTracks 🎧
-
-
0.16.3614 Apr 2025Release notes
Open source →Released: 2025-04-14
Safety And Performance
-
Fix journal disjoint-buffer assertion.
-
Make object cache optional. This improves throughput by ~10%, as we can omit the object cache from the account events groove, which never uses it.
Internals
TigerTracks 🎧
-
-
0.16.3507 Apr 2025Release notes
Open source →Released: 2025-04-07
Please note that after #2787, which adds batching support for all operations, the
batch_maxlimit has changed from 8190 to 8189 accounts/transfers per batch.Safety And Performance
-
Add support for batching multiple independent requests of the same operation within a single VSR message, amortizing network and consensus costs.
Earlier, we batched only create_accounts and create_transfers. Now, we can batch any operation!
Internals
-
Use TigerBeetle's time abstraction as opposed to raw OS time in the tracer.
-
Allow custom network packet delay functions in the VOPR. This allows us to simulate latencies for different network topologies, for example the ring/star topology.
-
Fix a VOPR false positive wherein we were accessing a crashed replica's uninitialized memory.
-
Improve error thrown when an invalid --account/transfer-batch-size is passed to the benchmark CLI.
-
Minor refactors to VSR and VOPR.
-
Fixes and improvements in the documentation.
TigerTracks 🎧
-
-
0.16.3431 Mar 2025Release notes
Open source →Released: 2025-03-31
Safety And Performance
-
Add basic fuzzing for the state machine.
-
Re-do tickless VOPR to simulate fast IOPs.
-
Allow simulating one-replica-down scenario in the VOPR.
-
Print dropped packets in the VOPR.
-
Various changes for VOPR performance mode.
-
A quicker request protocol for VSR.
-
Account for pulses when computing the size of the request queue in VSR.
-
Fix a possible panic in the Node.js client by handling the "too much data" error.
-
Fix a possible replica crash if negative timestamps would be provided to AccountFilter or QueryFilter.
Features
-
Allow
tigerbeetle inspectto run on open data files. This helps with getting an idea what's going on a running cluster without needing to shut it down first.
Internals
-
Vendor our own BitSet in stdx, TigerBeetle's extended standard library. This change reduces the Linux binary size by 38KiB.
-
Track the REPL execution time on DevHub.
-
Fix the wording in the correcting transfers example. Thanks @shraddha38!
-
Remove the global allocator from the fuzzers and pass the allocator explicitly to align more with TigerStyle.
-
Block merges in the CI based on DevHub pipeline results.
-
Add replica/lsm/grid/journal metrics to VSR.
TigerTracks 🎧
-
-
0.16.3324 Mar 2025Release notes
Open source →Released: 2025-03-24
Note that #2824 bumps the oldest supported client version to 0.16.4, removing backward compatibility with various deprecated features. Please make sure that all of your clients are running on at least 0.16.4 before upgrading to this release!
Safety And Performance
-
Add performance mode to the VOPR, which tracks the number and aggregate size of each kind of message during a run.
Features
-
Bump the oldest supported client version to 0.16.4, removing backward compatibility with various deprecated features.
Internals
-
Simplify the idiom around adding elements to lists with comptime known lengths.
-
Better styling for links and block quotes in the documentation.
-
Change debug multiversion builds to encapsulate two versions as opposed to five.
-
Improve CFO efficacy by retaining Zig build cache across fuzzing iterations.
-
Update TigerStyle to add a new rule about using long form arguments in scripts (--force over -f).
-
Fix various VOPR false positives.
TigerTracks 🎧
-
-
0.16.3217 Mar 2025Release notes
Open source →Released: 2025-03-17
Safety And Performance
-
Vendor the PRNG, and tweak the API to be less wordy.
PRNG algorithms tend to change, often for reasons not applicable to TigerBeetle. We need neither the fastest, nor the most secure PRNG, and it's better if we rotate our PRNG algorithm at our own pace.
-
Fix a case where, if a busy cluster's pipeline is full, the prepare_timeout was never reset.
This improves performance of a local benchmark for a 6-replica cluster with one replica down and 4 clients almost ~4x.
Internals
-
Add syntax highlighting to docs code snippets (thanks @nilskch!), fix Python example code (thanks @IvoCrnkovic!) and update our HACKING.md with current practices.
-
Prepare for the Zig 0.14 upgrade by applying as many changes that still work on 0.13 as possible. This includes vendoring AEGIS, to keep hash stability, as 0.14 changes the implementation.
TigerTracks 🎧
-
-
0.16.3110 Mar 2025Release notes
Open source →Released: 2025-03-09
Safety And Performance
-
Use LIFO instead of FIFO for free blocks during compaction for better temporal locality.
-
Disallow converting negative big integers to
UInt128in the Java and Go clients, as they would be incorrectly interpreted as unsigned big integers when converted back. -
Remove spurious
write_reply_next()after read completes inclient_replies, as reads and writes can happen concurrently. -
Assert that
cache_map.stashis not using any element beyond its defined capacity.
Features
Internals
-
#2791, #2792, #2793, #2794, #2795, #2796, #2807
Miscellaneous documentation typo fixes, clarifications, and references.
-
Ban qualified
std.debug.assertand@memcpy. -
Fix code comment typos.
-
Add tracking of format time and startup time to the devhub.
TigerTracks 🎧
-
-
0.16.3003 Mar 2025Release notes
Open source →Released: 2025-03-03
Note: Before performing this upgrade, please make sure to check that no replicas are lagging and state syncing.
You can ensure this by temporarily pausing load to the TigerBeetle cluster and waiting for all replicas to catch up. If some replicas in your cluster were indeed lagging, you should see
on_repair_sync_timeout: request sync; lagging behind clusterin the logs, followed bysync: ops=, which indicates the end of state sync. If you don't see the former in the logs, then you are already safe to upgrade!This is to work around an issue in the upgrade between 0.16.25 → 0.16.26, wherein a state syncing replica goes into a crash loop when it upgrades to 0.16.26. If one of your replicas has already hit this crash loop, please reach out to us on the Community Slack so we can help you safely revive it.
Safety And Performance
-
Fix TOCTOU bug in our hybrid set-associative cache and hash map structure, wherein a promotion to the cache coupled with an eviction from the cache could lead to invalid pointer references.
-
Add logic to crash replica upon receiving unknown commands from clients and other replicas.
-
Fix upgrade bug wherein a replica does not detect a change in the binary if it is replaced during its initialization in
Replica.open(). -
Alternate replication direction for even and odd ops to better detect breaks in the ring topology.
Internals
-
#2770, #2781, #2779, #2778, #2769,
Add new docs content to
TigerBeetle Architecture, fix miscellaneous typos and references. -
Simplify idiom around a replica sending messages to itself.
-
Refactor MessageBus to remove platform-specific IO logic.
TigerTracks 🎧
-
-
0.16.2924 Feb 2025Release notes
Open source →Released: 2025-02-24
Note: Before performing this upgrade, please make sure to check that no replicas are lagging and state syncing.
You can ensure this by temporarily pausing load to the TigerBeetle cluster and waiting for all replicas to catch up. If some replicas in your cluster were indeed lagging, you should see
on_repair_sync_timeout: request sync; lagging behind clusterin the logs, followed bysync: ops=, which indicates the end of state sync. If you don't see the former in the logs, then you are already safe to upgrade!This is to work around an issue in the upgrade between 0.16.25 → 0.16.26, wherein a state syncing replica goes into a crash loop when it upgrades to 0.16.26. If one of your replicas has already hit this crash loop, please reach out to us on the Community Slack so we can help you safely revive it.
Safety And Performance
-
Explicitly ignore deprecated protocol messages.
-
Fix a crash when, during upgrade, replica's binary is changed the second time.
Features
-
Implement metrics, using statsd format.
-
Add new indexes to the account balances to enable CDC.
-
#2521, #2751, #2756, #2757, #2754
Restructure documentation.
-
Implement more standard shortcuts for REPL.
Internals
-
Refactor C client API to remove internal mutex.
-
Don't use deprecated Node.js APIs in the samples.
-
Improve documentation search.
-
Switch to vale for documentation spell checking.
TigerTracks 🎧
-