RetryPolicy
data class RetryPolicy(val maxAttempts: Int = 3, val initialDelayMs: Long = 1000, val maxDelayMs: Long = 16000, val backoffMultiplier: Double = 2.0)
Retry policy for indexer API calls with exponential backoff.
Strategy:
Network errors: Retry with exponential backoff
Server errors (5xx): Retry with exponential backoff
Client errors (4xx): Don't retry (request is invalid)
Timeout: Retry with longer timeout
Exponential Backoff:
Attempt 1: Wait 1s
Attempt 2: Wait 2s
Attempt 3: Wait 4s
Attempt 4: Wait 8s
Attempt 5: Wait 16s (max)