A serverless database is any database that embodies the core principles of the serverless computing paradigm. Those core serverless principles are:
For developers, what’s important to note is that a serverless database abstracts away most of the complexity into a simple API in the cloud. In a serverless database developers should expect scale, resilience, and transactional consistency to be accomplished without much operational overhead.Perhaps most importantly, with a serverless database you pay only for what you use. And most serverless databases are free up to a certain amount of storage (Example: 5GB).
This video explains serverless databases in less than 3 minutes:
While the term serveless has a specific definition, it is not well understood, and the term is used generously by marketing teams in the industry. Because of this trend it’s difficult to narrow down which databases are truly serverless. This is the current list:
For starters, any serverless application will run better on a serverless database. This does not mean that serverless applications need to run on a serverless database. It’s just that running a serverless application on a serverless database allows you to take full advantage of being distributed.
There are relational serverless databases and eventually consistent Serverless databases so the use cases will vary depending on whether you want the transactional consistency that you get from a relational database. Also, each of the serverless databases listed above has different strengths and weaknesses. Some have instantaneous starts while most others have cold starts. Some have single write node limitations, or unfamiliar SQL language variations, or high latencies…So you’ll have to research each before deciding which is best for your use case. In general, a serverless database is adopted for these two reasons:
Here are some situations in which a serverless database is a good fit today:
Side project - Don’t spend money upfront and if the app is successful, monitor & control your spending throughout.
Proof/Starter Project - build out a simple proof of concept for an application idea without paying for a platform in order to confirm that the database is the right fit before spending any money.
Development environments - prototype a new use case on a serverless database. This type of dev environment is great for quick tests or to try out features.
Continuous integration (CI) pipelines - create a testing environment for your development teams so they don’t have to think about choosing, sizing, etc. the machines. They can just write code and run queries, and automate all of this.
Evaluation - users that would like to understand how a database works before committing to paying for a cluster. Users who want to test out certain features or begin prototyping their application before paying.
Also, serverless databases can provide additional benefits if your project/application has: