PracHub
QuestionsLearningGuidesInterview 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 Stateful Working Hours Register - Airbnb (hard)
  • 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)
|Home/Software Engineering Fundamentals/Airbnb

Design an extensible request Retryer

Airbnb logo
Airbnb
Oct 13, 2025, 12:00 AM
mediumSoftware EngineerTechnical ScreenSoftware Engineering Fundamentals
6
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).
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

Write your answer

Your first approved answer each day earns 20 XP.

Sign in to write your answer.
PracHub

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

Product

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

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding 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.