DVA-C02 - Development with AWS Services - Section 1.2

Write fault-tolerant application code using idempotency, retries with exponential backoff and jitter, and dead-letter queues.

Design idempotent operations so that repeated retries produce the same result, and implement exponential backoff and jitter to avoid thundering-herd failures. Recognise when to route unprocessable messages to dead-letter queues rather than blocking the main consumer.

IdempotencyExponential backoff and jitterDead-letter queuesRetry logic

Practice question for this objective

Free sampleDevelopment with AWS Servicesmedium

A developer calls Amazon DynamoDB from application code using the AWS SDK and sometimes receives a ProvisionedThroughputExceededException during traffic spikes. The developer wants the application to recover from these transient throttling errors automatically while spreading retries to avoid a synchronised retry storm across many clients. Which approach should the developer use?

  • ACatch the exception and immediately resend the same request in a tight loop until DynamoDB finally accepts the write or read.
  • BCatch the exception and retry after a fixed one second delay each time so every client waits the same interval before trying again.
  • CRely on the SDK retry behaviour using exponential backoff with jitter, raising the max attempts if the default retries are exhausted. Correct
  • DProvision the table for the highest expected peak capacity permanently so throttling errors never occur and no retry logic is needed.
Handle transient throttling by relying on SDK retries with exponential backoff and jitter rather than tight or fixed-interval loops. AWS SDKs automatically retry throttling and transient errors using exponential backoff that grows the wait between attempts and adds random jitter, which prevents many clients from retrying at the same instant and lets the service drain the spike.

Why A is wrong: An immediate tight retry loop hammers the table during throttling and offers no backoff, so many clients retry in lockstep and the throttling worsens rather than clearing.

Why B is wrong: A fixed delay still synchronises retries across clients into the same instants, so it forms a retry storm and lacks the growing wait that backoff provides.

Why C is correct: The AWS SDK retries throttling errors with exponential backoff and added jitter by default, which spaces and desynchronises retries so transient throttling clears without a storm.

Why D is wrong: Permanently over-provisioning wastes capacity, raises cost, and still cannot guarantee zero throttling during unexpected spikes, so the client must handle the error regardless.

See more DVA-C02 practice questions, answers explained.

More in this domain

Back to all Development with AWS Services objectives, or the DVA-C02 cert hub.

Examworthy is not affiliated with or endorsed by Amazon Web Services. Original, blueprint-aligned practice material only.