Skip to content

Default to standard retry #3236

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: version-3
Choose a base branch
from
Open

Default to standard retry #3236

wants to merge 8 commits into from

Conversation

mullermp
Copy link
Contributor

Sets the default retry strategy to standard.

This is a mild breaking change, rendering some config values useless (since standard doesn't have too many configurable options).

DynamoDB extended retries will include a new default of 10 retries but no configurable jitter/backoff policy unless configured back to legacy.

Other changes to the retry plugin are rubocop related.

Copy link

github-actions bot commented Apr 28, 2025

Detected 7 possible performance regressions:

  • aws-sdk-dynamodb.get_item_small_ms - z-score regression: 0.59 -> 0.69. Z-score: 18.5
  • aws-sdk-dynamodb.put_item_large_ms - z-score regression: 58.07 -> 73.48. Z-score: 33.79
  • aws-sdk-dynamodb.batch_get_item_large_ms - z-score regression: 76.76 -> 88.85. Z-score: 35.43
  • aws-sdk-kinesis.put_record_small_ms - z-score regression: 0.44 -> 0.51. Z-score: 15.14
  • aws-sdk-s3.get_object_large_ms - z-score regression: 3.73 -> 6.82. Z-score: 18.79
  • aws-sdk-s3.put_object_multipart_large_ms - z-score regression: 33.6 -> 39.97. Z-score: 22.86
  • aws-sdk-sns.publish_small_ms - z-score regression: 0.53 -> 0.62. Z-score: 16.27

Copy link
Contributor

@jterapin jterapin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM ✨

Co-authored-by: Juli Tera <57973151+jterapin@users.noreply.github.com>
docstring: <<-DOCS) do |cfg|
Specifies which retry algorithm to use. Values are:
docstring: <<~DOCS) do |cfg|
Specifies which retry algorithm to use. Values are:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be worthwhile to link this resource: https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html

I believe this documentation is very current since it was linked to the blogpost as a point of reference: https://aws.amazon.com/blogs/developer/updating-aws-sdk-defaults-aws-sts-service-endpoint-and-retry-strategy/

Comment on lines +147 to +150
docstring: <<~DOCS) do |cfg|
Used only in `standard` and `adaptive` retry modes. Specifies whether to apply
a clock skew correction and retry requests with skewed client clocks.
DOCS
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was expecting see this configuration to be mentioned in the AWS SDK documentation on retries. If this is necessary, we should probably see if someone could update the documentation.


option(
:max_attempts,
default: 10,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was there a reason why it was 10 attempts? I was curious

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not certain. Probably because of throttling and can be loss of data.

mullermp and others added 2 commits July 17, 2025 09:24
Co-authored-by: Juli Tera <57973151+jterapin@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants