The AWS API is eventually consistent only and also exhibits a customer specific dynamic throttling policy, both of which require respective retry logic to be in place. Accordingly the facilitated AWS SDK for Java features an exponential backoff strategy already, but its default retry number of 3 (accumulating to a retry window of up to ~4 seconds) has proven to be too low for the tasks at hand and has been increased to 7 accordingly (accumulating to a retry window of up to ~1 minute).
This should ideally be sufficient for most scenarios, but the values are adjustable by defining one or both of the following variables if need be:
${custom.aws.maxErrorRetry}
- how many retries should the exponential backoff algorithm perform (default: 7)${custom.aws.awaitTransitionInterval}
- how long should the task wait before querying the resource transition state again (default: 15000 milliseconds)