A new asynchronous service processes variable-duration jobs. Workers may fail after a job starts, and work must be retried without losing it. Which two design elements are appropriate? Select 2 answers.

Published
  1. Delete a message only after successful processing and make side effects idempotent.
  2. Assume a standard queue never delivers a message more than once.
  3. Delete every message before processing so failed jobs disappear.
  4. Use a queue visibility timeout with extension for legitimate long-running work.
  5. Set visibility to zero for all jobs regardless of duration.

Comments — 0