bottlerocket-os / bottlerocket-os/twoliter

Improve Client-side SSM API robustness to reduce getting Rate-limited in Pubsys

Open
#455 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
34
Forks
43
Avg merge
11h 13m
Merged PRs (30d)
16

Description

**Description**

We have been seeing issues where multiple instances of twoliter ssm commands, cause us to get rate-limited across Get/Put Parameter API's. We would like to improve upon this by extending some of @cbgbt's previous work.

@cbgbt implemented a async rate-limiting function for the [SSM Get Parameter API](https://github.com/bottlerocket-os/twoliter/pull/348/commits/88051331ebcd404e383819dbfb8b9acf0afc77c9), this can be extended for the Put Parameter API.

Additionally, @cbgbt also implemented [retries](https://github.com/bottlerocket-os/twoliter/commit/88051331ebcd404e383819dbfb8b9acf0afc77c9) for SSM Validation which can be extended to the Get/Put parameter calls in case they fail due to network issues.

** What I'd like **

- get_parameter/set_parameter function calls use retries along with a async rate-limiting function to avoid getting rate-limited.
- Tested against several parallel ssm calls across several variants & regions.

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing SSM Validation retries and the async rate-limiting work linked in the issue, then trace the get_parameter and set_parameter calls. Extend those calls with retries and async rate limiting, and verify completion with parallel SSM calls across several variants and regions.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, rust
Domain
cloud
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.