apache / apache/arrow-rs-object-store
Feature request: allow customized retry policy
- Dominant language
- Rust
- Stars
- 322
- Forks
- 212
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 10
Description
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
Hi team, I'm using OCI object storage in production, and I found it returns 403 or 404 when temporary authentication failures.
For now, we only retry [limited error status](https://github.com/apache/arrow-rs-object-store/blob/d5737ddec752bb7de38ea94482f1f8fbaa3b5aa9/src/client/retry.rs#L408-L411), and there's no way for us to customize our retry policy; for my case specially, I do want to retry on 403/404.
**Describe the solution you'd like**
Make retry policy a functor, so users could customize their own retry logic; meanwhile default policy shouldn't be changed.
**Describe alternatives you've considered**
There're some well-known retry libraries on the market, like [backon](https://github.com/Xuanwo/backon), we could also adopt it as well.
**Additional context**
I'm discussing with OCI team on the HTTP status code, but would like to have customized retry policy to unblock.
Contributor guide
Research direction
Start in src/client/retry.rs around the linked status-handling logic and trace how the current default retry policy is selected and applied. Define the customization boundary while preserving the existing default behavior; done means callers can provide retry logic that handles statuses such as 403 and 404.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, cloud
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100