Files
clawdbot/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose
2026-01-23 00:49:40 +00:00

64 lines
1.5 KiB
Plaintext

# Retry with Backoff Example
# Demonstrates automatic retry patterns for resilient API calls
# Simple retry - try up to 3 times on failure
session "Call flaky third-party API"
retry: 3
# Retry with exponential backoff for rate-limited APIs
session "Query rate-limited service"
retry: 5
backoff: "exponential"
# Retry with linear backoff
session "Send webhook notification"
retry: 3
backoff: "linear"
# Combining retry with context passing
let config = session "Load API configuration"
session "Make authenticated API request"
context: config
retry: 3
backoff: "exponential"
# Retry inside try/catch for fallback after all retries fail
try:
session "Call primary payment processor"
retry: 3
backoff: "exponential"
catch:
session "All retries failed - use backup payment processor"
retry: 2
# Parallel retries for redundant services
parallel:
primary = try:
session "Query primary database"
retry: 2
backoff: "linear"
catch:
session "Primary DB unavailable"
replica = try:
session "Query replica database"
retry: 2
backoff: "linear"
catch:
session "Replica DB unavailable"
session "Merge results from available databases"
context: { primary, replica }
# Retry in a loop for batch processing
let items = ["batch1", "batch2", "batch3"]
for item in items:
try:
session "Process this batch item"
context: item
retry: 2
backoff: "exponential"
catch:
session "Log failed batch for manual review"
context: item