Skip to content

Commit c2cd59b

Browse files
feat(rust): implement idempotency-aware retry logic [PECOBLR-2091]
Implements the standardized DBSQL connector retry specification with: - RequestType enum as single source of truth for request classification - Idempotent vs non-idempotent retry strategies with distinct behavior - Exponential backoff with random jitter (50-750ms) - Retry-After header support (seconds and HTTP-date formats) - Cumulative overall timeout (default 900s) - Per-category retry config (SEA, CloudFetch, Auth) with global defaults - Structured DEBUG logging per attempt and per request summary - Metadata queries (list_*) classified as idempotent via ExecuteMetadataQuery Co-authored-by: Isaac
1 parent f69804a commit c2cd59b

File tree

13 files changed

+2742
-206
lines changed

13 files changed

+2742
-206
lines changed

rust/Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ chrono = { version = "0.4", features = ["serde"] }
5353
# LZ4 decompression for CloudFetch
5454
lz4_flex = "0.11"
5555

56+
# Random number generation (retry jitter)
57+
rand = "0.9"
58+
5659
# Concurrent data structures
5760
dashmap = "5"
5861

0 commit comments

Comments
 (0)