diff --git a/CHANGELOG.md b/CHANGELOG.md index 82cda84..18d509c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # changelog +## 0.3.27 + +Reconnect backoff resets after a connection that was established. + +- **fix**: `FirehoseClient.subscribe` and `JetstreamClient.subscribe` reset the + reconnect backoff once a connection has been established, not only when the + host rotates. A single-host consumer could never satisfy the host-switch + condition, so its delay doubled 1→2→4…→60s and stayed at the ceiling for the + life of the process, however healthy each connection had been. Against a + relay that closed every ~113s this left a consumer's tail down 33% of the + time. Measured live with forced disconnects: gaps held at ~1.38s across seven + reconnects, versus 1.4/2.4/4.4/8.4/16.4/32.6s before. Matches the reset point + in jcalabro/atmos (`streaming/client.go`); keying it on delivered events + instead would leave an idle-but-healthy filtered consumer compounding its + backoff. + ## 0.3.26 Strict CID parsing and formatting, following atmos's hardened profile. diff --git a/build.zig.zon b/build.zig.zon index 5dd4b9d..d8a808e 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,6 +1,6 @@ .{ .name = .zat, - .version = "0.3.26", + .version = "0.3.27", .fingerprint = 0x8da9db57ee82fbe4, .minimum_zig_version = "0.16.0-dev.3070+b22eb176b", .dependencies = .{