pythonintermediate

Tenacity Retry for Pipeline Resilience

Add exponential backoff retries to flaky data pipeline steps using Tenacity.

python
from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type
import requests

@retry(
    stop=stop_after_attempt(5),
    wait=wait_exponential(multiplier=1, min=2, max=30),
    retry=retry_if_exception_type((requests.ConnectionError, requests.Timeout)),
    reraise=True,
)
def fetch_data(url: str) -> dict:
    response = requests.get(url, timeout=10)
    response.raise_for_status()
    return response.json()

data = fetch_data('https://api.example.com/records')
print(len(data))

Use Cases

  • resilient API calls
  • flaky ETL steps
  • transient failure handling

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.