[rust] Support bounded write delivery (delivery timeout)
- Dominant language
- Java
- Stars
- 2.1k
- Forks
- 625
- Avg merge
- 3d 14h
- Merged PRs (30d)
- 97
Description
### Search before asking
- [x] I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.
### Description
### Description
Today the only bound on write delivery is the retry count(`client.writer.retries`, default INT32_MAX) — effectively unbounded. `client.writer.batch-timeout` does not help: it is a linger (when to send a non-full batch), not a delivery bound. So a record can stay in the accumulator + retry loop forever (e.g. on leader-not-available), and abandoning the write future does not remove it — a write reported as failed by the caller can still be applied later.
Add a Kafka `delivery.timeout.ms`-style bound, matching KIP-91 semantics:
- Each record carries a deadline from the moment it is appended to the accumulator.
- Batches that expire before being sent fail deterministically and are removed from the queue.
- Retries stop once the deadline is reached.
Subtask of #3854 (Fluss REST Gateway umbrella), which runs each write request under an end-to-end deadline and must guarantee that entries expired before send never land afterwards. (Note: the Java client has the same gap; this issue covers fluss-rust only.)
### Willingness to contribute
- [ ] I'm willing to submit a PR!
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.