Skip to main content

<a href=”https://crate.io/packages/dynamic-dynamodb/”><img src=”https://pypip.in/v/dynamic-dynamodb/badge.png”></a> <a href=”https://crate.io/packages/dynamic-dynamodb/”><img src=”https://pypip.in/d/dynamic-dynamodb/badge.png”></a> <a href=”https://crate.io/packages/dynamic-dynamodb/”><img src=”https://pypip.in/license/dynamic-dynamodb/badge.png”></a>

AWS NoSQL database DynamoDB is a great service, but it lacks automated throughput scaling. This is where Dynamic DynamoDB enters the stage. It provides automatic read and write provisioning for DynamoDB.

All you need to do is to tell Dynamic DynamoDB at which point and how much you want to scale up or down your DynamoDB tables. An example is in place. Let’s say you have way more traffic on your database during sales hours 4pm - 10pm. DynamicDB can monitor the increased throughput on your DynamoDB instance (via CloudWatch) and provision more throughput as needed. When the load is reducing Dynamic DynamoDB will sence that and automatically reduce your provisioning.

See an example of how to configure Dynamic DynamoDB under Basic usage or checkout dynamic-dynamodb –help.

Gratefully receiving donations at [Gittip](https://www.gittip.com/sebdah/).

Features in short

  • Scale up and down DynamoDB automatically

  • Restrict scaling to certain time slots

  • Monitor multiple DynamoDB tables at the same time

  • Gives you control over how much reads and writes you want to scale up and down with

  • Dynamic DynamoDB has support for max and min limits so that you always knows how much money you spend at most and how much capacity you can be guaranteed

  • Support for circuit breaker API call. If your service is experiencing disturbances, Dynamic DynamoDB will not scale down your DynamoDB tables

Documentation

Project documentation is hosted at [dynamic-dynamodb.readthedocs.org](http://dynamic-dynamodb.readthedocs.org/en/latest/index.html).

Basic usage

This example will configure Dynamic DynamoDB to:

  • Scale up your DynamoDB table when the consumed reads 90% of the total provisioned reads

  • Scale up your DynamoDB table when the consumed writes 90% of the total provisioned writes

  • Scale up your reads with 50%

  • Scale up your writes with 40%

  • Scale down your DynamoDB table when the consumed reads 30% of the total provisioned reads

  • Scale down your DynamoDB table when the consumed writes 40% of the total provisioned writes

  • Scale down your reads with 40%

  • Scale down your writes with 70%

  • Check for changes every 5 minutes

Command:

dynamic-dynamodb –table-name my-table

–reads-upper-threshold 90 –reads-lower-threshold 30 –increase-reads-with 50 –decrease-reads-with 40 –writes-upper-threshold 90 –writes-lower-threshold 40 –increase-writes-with 40 –decrease-writes-with 70 –check-interval 300

Please note that using configuration files instead of command line options will give you even more control over the service.

Installation instructions

The easiest way to install Dynamic DynamoDB is through PyPI:

pip install dynamic-dynamodb

Reporting bugs

Please help me by providing feedback and bug reports. You can file bugs in the project’s [GitHub Issues page](https://github.com/sebdah/dynamic-dynamodb/issues).

Provide as much details as possible to make bug fixing as swift as possible.

Git strategy

This project uses [git-flow](https://github.com/nvie/gitflow) for handling branching and releasing in Git. See the following [blog post](http://nvie.com/posts/a-successful-git-branching-model/) for more details on how it works.

Releasing to PyPI

make release

Author

This project is maintained by [Sebastian Dahlgren](http://www.sebastiandahlgren.se) ([GitHub](https://github.com/sebdah) | [Twitter](https://twitter.com/sebdah) | [LinkedIn](http://www.linkedin.com/in/sebastiandahlgren))

Gratefully receiving donations at [Gittip](https://www.gittip.com/sebdah/).

License

APACHE LICENSE 2.0 Copyright 2013-2014 Sebastian Dahlgren

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/sebdah/dynamic-dynamodb/trend.png)](https://bitdeli.com/free “Bitdeli Badge”)

Release files for dynamic-dynamodb 1.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dynamic-dynamodb 1.9.0
File Size Uploaded
dynamic-dynamodb-1.9.0.tar.gz 48.1 kB Details

Release files / dynamic-dynamodb-1.9.0.tar.gz

Download URL dynamic-dynamodb-1.9.0.tar.gz
Size 48.1 kB
Tags Source
SHA-256 checksum
How to use checksums
928d92828b3db6ea2213e8f8e41946a6fb9d440f79fc03c4127e97ddd9764e4c
BLAKE2b-256 checksum
How to use checksums
d251ec0c11fb71ecca8ac0b681af07702ae4fdb82bb42d2f780ce0d8b9fe577c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

2.5.1

1 release file

2.5.0

1 release file

2.4.0

1 release file

2.3.1

1 release file

2.3.0

1 release file

2.2.1

1 release file

2.2.0

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.2

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.20.6

1 release file

1.20.5

1 release file

1.20.4

1 release file

1.20.3

1 release file

1.20.2

1 release file

1.20.1

1 release file

1.20.0

1 release file

1.19.2

1 release file

1.19.0

1 release file

1.18.5

1 release file

1.18.4

1 release file

1.18.3

1 release file

1.18.2

1 release file

1.18.1

1 release file

1.18.0

1 release file

1.17.0

1 release file

1.16.0

1 release file

1.15.1

1 release file

1.15.0

1 release file

1.14.0

1 release file

1.13.1

1 release file

1.13.0

1 release file

1.12.1

1 release file

1.12.0

1 release file

1.11.0

1 release file

1.10.7

1 release file

1.10.6

1 release file

1.10.5

1 release file

1.10.4

1 release file

1.10.3

1 release file

1.10.2

1 release file

1.10.1

1 release file

1.10.0

1 release file

1.9.1

1 release file

This release

1.9.0 This release

1 release file

1.8.3

1 release file

1.8.2

1 release file

1.8.1

1 release file

1.8.0

1 release file

1.7.3

1 release file

1.7.2

1 release file

1.7.1

1 release file

1.7.0

1 release file

1.6.0

1 release file

1.5.8

1 release file

1.5.7

1 release file

1.5.6

1 release file

1.5.5

1 release file

1.5.4

1 release file

1.5.3

1 release file

1.5.2

1 release file

1.5.1

1 release file

1.5.0

1 release file

1.4.0

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.5

1 release file

1.2.4

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.5.0

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page