A serverless AWS Lambda function that automatically scales DynamoDB provisioned capacity and global secondary indexes.
dynamodb-lambda-autoscale is a serverless AWS Lambda function that automatically adjusts DynamoDB provisioned throughput (read and write capacity) for tables and global secondary indexes based on utilization and throttling events. It optimizes costs and performance by dynamically scaling capacity in response to actual workload patterns, preventing throttling during traffic spikes. The solution uses a code-first, configurable approach to implement custom autoscaling logic.
AWS developers and DevOps engineers managing DynamoDB tables who need automated, cost-effective scaling beyond AWS's native autoscaling features, particularly for handling unpredictable traffic or hotkey issues.
Developers choose this over alternatives for its flexible, code-first design that allows custom provisioning logic, its ability to scale based on both utilization and throttling events to handle spikes effectively, and its built-in handling of AWS's rate limits on table decrements.
Autoscale DynamoDB provisioned capacity using Lambda
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Incorporates throttled event metrics into scaling decisions, optimizing for large usage spikes and hotkey issues, as highlighted in the README for robust performance during traffic surges.
Uses a time-segmented algorithm to efficiently handle AWS's limit of four table decrements per day, preventing wasted capacity adjustments and optimizing cost savings.
Offers a React-style, code-over-configuration design that allows developers to extend base classes and implement custom provisioning logic, providing flexibility beyond static JSON strategies.
Autoscales multiple DynamoDB tables and their global secondary indexes simultaneously, with concurrent queries for faster metric fetching and updates, as specified in the features.
Targets the deprecated Node.js 4.3 runtime, requiring manual builds, AWS policy configuration, and Lambda event scheduling, which increases maintenance overhead and security risks.
Relies on Flow for static type checking, adding a learning curve and tooling burden (e.g., Nuclide IDE) that may deter teams unfamiliar with or preferring TypeScript or plain JavaScript.
Lacks integration with modern AWS services like DynamoDB on-demand mode, and the disclaimer notes it's 'at your own risk,' indicating potential instability and minimal community backing.