Database as a service is an example of a managed database where any hardware provisioning, scaling, or shrinking of resources with dynamic load, sharding, replication, and many database administrative tasks is performed by the system. The end users of such a managed database use queries to interact with it. AWS’s DynamoDB is an example of such a database. In this lesson, we will see how DynamoDB is designed.

Design requirements

Here are our design requirements.

Functional requirements

We require the following functional design requirements:

  1. Managed service over the cloud: We will deploy our service on a managed cloud. Our users will not need to manage security patches, hardware, and distributed services. Our service will handle resource provisioning, failure management, software upgrades, and backups. Application users will interact with our service via API.

  2. Multi-tenant architecture: Different customers will share resources. For example, a single customer can use multiple nodes that other customers can also use. This will ensure high utilization of resources and allow the service to pass the saved costs to the customer.

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.