Summary
keikoproj/aws-sdk-go-cache should be deprecated and removed from all consumer repos. This issue tracks the deprecation rationale and cross-repo coordination. The actual removal in instance-manager is part of the AWS SDK v2 migration (#523).
Background
aws-sdk-go-cache is a response-caching layer for AWS SDK for Go v1 that caches read-only API calls (Describe*, List*, Get*) in-memory. It was originally built to mitigate AWS API rate limiting (throttling).
Why Remove It
- AWS SDK v1 is EOL — the library is built entirely on v1 request handlers with no v2 equivalent
- Rate limiting is no longer a practical issue — throttling hasn't been observed in keikoproj deployments in a long time
- AWS SDK v2 has robust built-in retry — standard retry mode includes token-bucket rate limiting (500 tokens), exponential backoff with jitter, configurable max attempts; adaptive retry mode adds dynamic client-side rate adjustment
- Maintenance burden — porting to v2 SDK middleware would be a significant rewrite for a problem that doesn't exist
- Short TTLs provide marginal benefit — most cached operations use 60s TTLs; built-in retry handles transient throttling equally well
- Complexity cost — TTL tuning, invalidation bugs, stale data risks
Consumer Repos
Migration Path
Remove the dependency as part of the AWS SDK v2 migration (#523):
- Replace `cache.NewSession()` / `cache.NewCacheConfig()` with standard `config.LoadDefaultConfig(ctx)`
- AWS SDK v2 standard retry mode is the default — no extra code needed
- For `DescribeInstanceTypes` (24h cache — truly stable data), add a simple `sync.Once` (~10 lines) instead of maintaining an entire caching library
- Remove Prometheus cache metrics (`aws_api_cache_activity`, `aws_api_cache_flushes`); replace with v2 middleware if observability of API call volume is desired
After All Consumers Are Migrated
- Update `aws-sdk-go-cache` README to indicate deprecation
- Archive the `keikoproj/aws-sdk-go-cache` repository on GitHub (issues are already disabled)
Summary
keikoproj/aws-sdk-go-cacheshould be deprecated and removed from all consumer repos. This issue tracks the deprecation rationale and cross-repo coordination. The actual removal in instance-manager is part of the AWS SDK v2 migration (#523).Background
aws-sdk-go-cacheis a response-caching layer for AWS SDK for Go v1 that caches read-only API calls (Describe*,List*,Get*) in-memory. It was originally built to mitigate AWS API rate limiting (throttling).Why Remove It
Consumer Repos
Migration Path
Remove the dependency as part of the AWS SDK v2 migration (#523):
After All Consumers Are Migrated