PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/Software Engineering Fundamentals/Airbnb

Design an extensible request Retryer

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability to design extensible and robust retry mechanisms, covering competencies in API/interface design, fault tolerance, backoff and jitter strategies, cancellation/deadline handling, idempotency considerations, and observability.

  • medium
  • Airbnb
  • Software Engineering Fundamentals
  • Software Engineer

Design an extensible request Retryer

Company: Airbnb

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Technical Screen

## Problem You are building a small library component called a **Retryer** that wraps an operation (typically a network call) and retries it on failure. ### Requirements 1. **Default behavior** - Provide a “default retryer” implementation that retries an operation when it fails. - The default should support common retry features: - Maximum attempts (or max retries) - Delay/backoff strategy (e.g., fixed, exponential) - Optional jitter - Stop conditions (e.g., do not retry on certain exception types / status codes) - Ability to honor a caller-provided cancellation/deadline (e.g., timeout) 2. **Extensibility** - The design must be **extensible** so that callers can plug in custom behavior without modifying the retryer’s core logic. Examples: - Custom backoff policy - Custom “should retry?” policy - Hooks/observers for logging/metrics - Handling server-provided retry hints (e.g., a `Retry-After` value) 3. **Usability** - The API should be easy to use for common cases, while still allowing advanced customization. ### What to deliver - Propose the public API (interfaces/classes) for the Retryer. - Explain how the default retryer works. - Explain how customizations are added (e.g., strategies, composition, configuration objects). - Call out key edge cases and pitfalls (e.g., thundering herd, non-idempotent operations, deadlines).

Quick Answer: This question evaluates a candidate's ability to design extensible and robust retry mechanisms, covering competencies in API/interface design, fault tolerance, backoff and jitter strategies, cancellation/deadline handling, idempotency considerations, and observability.

Related Interview Questions

  • Design a banking ledger for deposits/withdrawals - Airbnb (medium)
  • Design a Connect-Four-like board game - Airbnb (hard)
  • How do you conduct a code review exercise? - Airbnb (hard)
Airbnb logo
Airbnb
Oct 13, 2025, 12:00 AM
Software Engineer
Technical Screen
Software Engineering Fundamentals
4
0

Problem

You are building a small library component called a Retryer that wraps an operation (typically a network call) and retries it on failure.

Requirements

  1. Default behavior
    • Provide a “default retryer” implementation that retries an operation when it fails.
    • The default should support common retry features:
      • Maximum attempts (or max retries)
      • Delay/backoff strategy (e.g., fixed, exponential)
      • Optional jitter
      • Stop conditions (e.g., do not retry on certain exception types / status codes)
      • Ability to honor a caller-provided cancellation/deadline (e.g., timeout)
  2. Extensibility
    • The design must be extensible so that callers can plug in custom behavior without modifying the retryer’s core logic. Examples:
      • Custom backoff policy
      • Custom “should retry?” policy
      • Hooks/observers for logging/metrics
      • Handling server-provided retry hints (e.g., a Retry-After value)
  3. Usability
    • The API should be easy to use for common cases, while still allowing advanced customization.

What to deliver

  • Propose the public API (interfaces/classes) for the Retryer.
  • Explain how the default retryer works.
  • Explain how customizations are added (e.g., strategies, composition, configuration objects).
  • Call out key edge cases and pitfalls (e.g., thundering herd, non-idempotent operations, deadlines).

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More Airbnb•More Software Engineer•Airbnb Software Engineer•Airbnb Software Engineering Fundamentals•Software Engineer Software Engineering Fundamentals
PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.