apache / apache/arrow-rs-object-store

Feature request: allow customized retry policy

Open
#840 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.