Skip to content

Retry Schedule

When a delivery fails, Transyt retries with exponential backoff and jitter. This spreads out retries to avoid overwhelming your application during outages.

delay = min(MAX_DELAY, BASE_DELAY * 2^attempts) ± JITTER
ConstantValue
BASE_DELAY10 seconds
MAX_DELAY4 hours (14,400 seconds)
JITTER±20% of the computed delay
MAX_ATTEMPTS10
AttemptApproximate DelayCumulative Time
1~10 seconds~10s
2~20 seconds~30s
3~40 seconds~1m 10s
4~80 seconds~2m 30s
5~2.5 minutes~5m
6~5 minutes~10m
7~10 minutes~20m
8~20 minutes~40m
9~40 minutes~1h 20m
10~1 hour 20 minutes~2h 40m

A delivery attempt is considered failed when:

  • Your application returns a non-2xx HTTP status code
  • The connection times out (30-second timeout)
  • The connection is refused or unreachable
  • A network error occurs (DNS failure, TLS error, etc.)

Each attempt is logged in the event’s delivery_history array with:

  • Timestamp
  • HTTP response code (if any)
  • Response body snippet (first 500 characters)
  • Error message (first 500 characters)

You can view delivery history via the Events API or the dashboard.

When all 10 attempts are exhausted, the event’s delivery_status is set to failed. See Failure Handling for what happens next.