Data Store
The data store is used to persist data needed by the
microservices. Popular stores for session data are in-memory
caches such as Memcached or Redis. AWS offers both technologies as
part of the managed
Amazon
ElastiCache
Putting a cache between application servers and a database is a common mechanism for reducing the read load on the database, which, in turn, may allow resources to be used to support more writes. Caches also can improve latency.
Relational databases are still very popular to store structured
data and business objects. AWS offers six database engines
(Microsoft SQL Server, Oracle, MySQL, MariaDB, PostgreSQL, and
Amazon
Aurora
Relational databases, however, are not designed for endless scale, which can make it difficult and time-intensive to apply techniques to support a high number of queries.
NoSQL databases have been designed to favor scalability, performance, and availability over the consistency of relational databases. One important element of NoSQL databases is that they typically don’t enforce a strict schema. Data is distributed over partitions that can be scaled horizontally and is retrieved using partition keys.
Because individual microservices are designed to do one thing
well, they typically have a simplified data model that might be
well suited to NoSQL persistence. It is important to understand
that NoSQL-databases have different access patterns than
relational databases. For example, it is not possible to join
tables. If this is necessary, the logic has to be implemented in
the application. You can use
Amazon
DynamoDB
DynamoDB also offers an automatic scaling feature to dynamically adjust throughput capacity in response to actual traffic. However, there are cases where capacity planning is difficult or not possible because of large activity spikes of short duration in your application. For such situations, DynamoDB provides an on-demand option, which offers simple pay-per-request pricing. DynamoDB on-demand is capable of serving thousands of requests per second instantly without capacity planning.