A serverless database is defined like any other serverless service: it needs to have high availability, and high scalability and, the pricing model must consider its real usage. Satisfying those conditions is particularly hard for databases since performance is a key feature. For a predictable and high performance, databases are usually configured in their own dedicated servers, but serverless requires a shared model to avoid charging the customer for 100% of the time the database is available. In serverless, we want to pay only when a request is done and not when the database is in an idle state.
Currently, only a few services have managed to bring the serverless model to databases. AWS offers just one service: SimpleDB, but it lacks many important features and is extremely limited. For other and better options, you can try FaunaDB, Google Firebase, or Google Cloud Datastore. To continue to use AWS services in this book, we are going to cover DynamoDB...