How would you design an Airbnb mobile app feature that needs to support a clean, testable approach to handling retries, backoff, and failure states?