Skip to content
This repository was archived by the owner on Feb 16, 2026. It is now read-only.

feat!: reduce default max_unacked_bytes to 5MiB#311

Merged
quettabit merged 1 commit intomainfrom
qb/max-unack-5
Feb 15, 2026
Merged

feat!: reduce default max_unacked_bytes to 5MiB#311
quettabit merged 1 commit intomainfrom
qb/max-unack-5

Conversation

@quettabit
Copy link
Member

No description provided.

@quettabit quettabit requested a review from a team as a code owner February 15, 2026 02:02
@greptile-apps
Copy link

greptile-apps bot commented Feb 15, 2026

Greptile Overview

Greptile Summary

Reduces the default max_unacked_bytes from 10MiB to 5MiB for both ProducerConfig and AppendSessionConfig, halving the default memory budget for unacknowledged data in-flight. This is a breaking change as it alters default behavior for users who rely on the implicit default.

  • Default max_unacked_bytes changed from 10 * ONE_MIB to 5 * ONE_MIB in ProducerConfig::default() and AppendSessionConfig::default()
  • Doc comments updated consistently in both locations to reflect the new 5MiB default
  • No stale references to the old 10MiB default found anywhere in the codebase (examples, tests, docs)
  • The with_max_unacked_bytes setter and its 1MiB minimum validation remain unchanged

Confidence Score: 5/5

  • This PR is safe to merge — it is a minimal, well-contained default value change with no logic or behavioral side effects.
  • The change is purely a constant default value reduction in two parallel config structs. Doc comments are updated consistently. No stale references to the old value exist. The validation logic and all other code paths remain untouched. There are no test failures, logic errors, or security concerns.
  • No files require special attention.

Important Files Changed

Filename Overview
src/producer.rs Default max_unacked_bytes reduced from 10 * ONE_MIB to 5 * ONE_MIB in ProducerConfig::default(), with matching doc comment update. No issues found.
src/session/append.rs Default max_unacked_bytes reduced from 10 * ONE_MIB to 5 * ONE_MIB in AppendSessionConfig::default(), with matching doc comment update. No issues found.

Flowchart

flowchart TD
    A[ProducerConfig::default] -->|"max_unacked_bytes = 5 MiB"| B[AppendPermits::new]
    C[AppendSessionConfig::default] -->|"max_unacked_bytes = 5 MiB"| B
    B -->|Creates Semaphore with byte budget| D[Backpressure Control]
    D -->|acquire permits before submit| E[Submit AppendInput / AppendRecord]
    E -->|Ack received| F[Release permits]
    F --> D
Loading

Last reviewed commit: d33f3cc

@quettabit quettabit merged commit 78a5bec into main Feb 15, 2026
6 checks passed
@quettabit quettabit deleted the qb/max-unack-5 branch February 15, 2026 02:08
@github-actions github-actions bot mentioned this pull request Feb 14, 2026
shikhar pushed a commit that referenced this pull request Feb 15, 2026
## 🤖 New release

* `s2-sdk`: 0.23.8 -> 0.24.0 (⚠ API breaking changes)

### ⚠ `s2-sdk` breaking changes

```text
--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/inherent_method_missing.ron

Failed in:
  CreateBasinInput::with_idempotency_token, previously in file /tmp/.tmpoNf48h/s2-sdk/src/types.rs:913
  CreateStreamInput::with_idempotency_token, previously in file /tmp/.tmpoNf48h/s2-sdk/src/types.rs:2583

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field idempotency_token of struct CreateBasinInput, previously in file /tmp/.tmpoNf48h/s2-sdk/src/types.rs:882
  field idempotency_token of struct CreateStreamInput, previously in file /tmp/.tmpoNf48h/s2-sdk/src/types.rs:2561

--- failure struct_pub_field_now_doc_hidden: pub struct field is now #[doc(hidden)] ---

Description:
A pub field of a pub struct is now marked #[doc(hidden)] and is no longer part of the public API.
        ref: https://doc.rust-lang.org/rustdoc/write-documentation/the-doc-attribute.html#hidden
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/struct_pub_field_now_doc_hidden.ron

Failed in:
  field CreateBasinInput.idempotency_token in file /tmp/.tmp5yfqnq/s2-sdk-rust/src/types.rs:868
  field CreateStreamInput.idempotency_token in file /tmp/.tmp5yfqnq/s2-sdk-rust/src/types.rs:2539
```

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.24.0] - 2026-02-15

### Features

- Add accessors for `AppendRecord`
([#305](#305))
- [**breaking**] Add lower bounds for `max_batch_bytes` and
`max_batch_records`
([#309](#309))
- [**breaking**] Reduce default `max_unacked_bytes` to `5MiB`
([#311](#311))

### Refactor

- Replace `reqwest` with `hyper-util` and add client pooling
([#298](#298))
- [**breaking**] Make `idempotency_token` private
([#306](#306))
- [**breaking**] Remove unnecessary `Result` from
`with_max_unacked_batches`
([#307](#307))
- Remove unnecessary compression for GET and DELETE requests
([#308](#308))
- Rename fields, methods, and vars related to `RetryBackoff`
([#310](#310))
- [**breaking**] Make `S2DateTime` conversion from
`time::OffsetDateTime` fallible
([#312](#312))

### Testing

- Metrics
([#297](#297))
- Basin & stream api
([#300](#300))

### Miscellaneous Tasks

- Bump dependencies
([#296](#296))
- Dep updates
([#314](#314))

<!-- generated by git-cliff -->
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant