Reactive Streams and DynamoDB

Introduction

In this blog post, I'm going to demonstrate how Reactive Streams can allow us to elegantly work with DynamoDB, a key-value data store with a predetermined write capacity.

DynamoDB

DynamoDB is an Amazon managed NoSQL database. Amazon DynamoDB Documentation

The performance characteristics and client behaviour of DynamoDB are very different to traditional data stores (for example, databases). When working with a relational database, performance may gradually decrease as load on the database increases. DynamoDB tables have a configurable read and write capacity, specified as the number of reads / writes per second the table will accept. AWS charges based on the provisioned capacity. Exceed this limit and DynamoDB will reject the read / write. If using the AWS Java client, this failure will be represented as a ProvisionedThroughputExceededException.


Continue reading