request timeout
Resilience Patterns

Meaning

A request timeout limits how long a client will wait for a response from a server before aborting the operation. It prevents indefinite blocking when the remote service is slow, unreachable, or misbehaving. Developers reach for a timeout when network latency or reliability is uncertain and they need to keep the application responsive.

Primary Function

Timeout handling

Communicative Purpose

Prevents indefinite waiting by limiting request duration

Pattern

set timeout → send request → handle timeout exception

Função primária

Timeout handling

Propósito comunicativo

Prevents indefinite waiting by limiting request duration

Situações de gatilho

Web API client: calling an external service that may hang Microservices: inter‑service RPC over an unreliable network CLI tool: downloading a file from a remote host with unknown latency

Contextos

HTTP client libraries (requests, urllib), asynchronous frameworks (aiohttp, asyncio), cloud SDKs, command‑line utilities

Padrão

set timeout → send request → handle timeout exception

Colocados típicos

  • retry logic
  • exponential backoff
  • circuit breaker
  • deadline

Substituições comuns

  • hard‑coded numeric timeout → configurable parameter (allows environment‑specific tuning) per‑request timeout → session‑wide default timeout (reduces repetition) blocking timeout → async timeout object (integrates with event loop)

Erros comuns

Setting the timeout on the wrong object (e.g., on a session instead of the request) → timeout not applied and request hangs Using a timeout that is too short for expected server response time → premature failures and unnecessary retries Neglecting to catch the timeout exception → unhandled exception crashes the program

Similar / contraste

Circuit breaker: stops calls after repeated failures, while timeout only limits a single call duration Deadline: absolute time limit for an operation, whereas timeout is a relative duration

Interferências

Coming from JavaScript: using setTimeout to enforce a network timeout does not abort the fetch request → use AbortController instead Coming from Java: assuming SocketTimeoutException is thrown for all I/O operations → some libraries require explicit timeout parameters

Família do chunk

  • retry logic
  • circuit breaker
  • deadline handling
  • backoff strategy

Nuance

Do not use a request timeout when the server already enforces its own timeout and returns a clear error code; redundant timeouts can mask server‑side diagnostics Very short timeouts increase CPU usage due to frequent retries and can degrade overall throughput Timeouts interact with retries; ensure backoff strategy respects the total allowed latency to avoid exceeding SLA

Efeito pragmático

Ensures that services remain responsive, resources are released promptly, and downstream systems are protected from cascading delays.

Dica de memória

A request timeout is like a kitchen timer that rings if the dish isn’t ready, forcing you to move on to the next course.

Nota

When using HTTPS, include a timeout for the TLS handshake as well, because the handshake can stall independently of the HTTP request.

Upgrade path

Implement exponential backoff with jitter and integrate a circuit‑breaker pattern

Frequência: HighFormulaicidade: FixedTipo de construção: conceptPrioridade de aquisição: Active recallPrioridade de output: BothTag de espaçamento: Short-term

Log in to save chunks.