<- All postsOct 13, 2023What is a Serverless Database? + 8 Picks for 2024The rise of serverless databases has been one of the major shifts in how we build software over the past few years. In fact, they’re increasingly becoming a core part of all sorts of application projects.See, when we build any kind of solution, a big portion of the cost is the infrastructure we use to store and host relevant data. This also has an outsized impact on the quality and success of whatever we’re building.We’re inevitably trying to balance these two concerns.Today, we’re diving deep into serverless databases as one solution for aligning these goals. Specifically, we’ll check out what they are, how they work, and what benefits they offer.Then, we’ll move on to eight of our favorite solutions from different corners of the market.But first, let’s get the basics under our belts.What is a serverless database?What’s strange is that serverless computing isn’t really serverless at all. At least, we can’t take from this description that there are no servers involved - because there are. The distinction is that the servers that host data aren’t really our problem as users or developers.A serverless database is a database that’s provided as a service by a third party - including management of the relevant infrastructure and hardware.We can then pay for resources on their managed servers on a consumption basis - giving us scalable, cloud-based data access.So, the vendor might have multiple servers across a whole range of data centers. But, we just connect to their service as we would any other database and pay for what we use - without needing to know much about the infrastructure that underpins this to manage databases.In practical terms, serverless databases have a couple of other important characteristics. One is elasticity. Basically, this means that we can scale our database and its footprint based on our current needs at any point in time.Serverless architecture is also typically built for resilience and fault tolerance. That is, they’re designed to survive individual hardware failures - so that if one node goes down, we can still access our data as if nothing happened.But, we’re starting to stray into our next discussion point…Advantages of serverless databasesWe said at the outset that one of the big impetuses for using serverless databases is the need to control costs while still achieving the capabilities and levels of performance that we need.This is because we’re paying for usage and we don’t manage any infrastructure ourselves - so we can scale compute and storage resources as and when we need to.Contrast this with owning and managing our own infrastructure. In this case - not only do we have to deal with outsized upfront costs - we also can’t easily expand or downsize our capabilities based on our needs.However, serverless databases aren’t just popular because of money.Serverless is also favored by many developers because it empowers them to focus on their data and what they want to do with it - rather than worrying about the database itself - eliminating all sorts of time-consuming operations tasks.In turn, this can reduce turnaround times and overall development costs.Similarly, it can be helpful for empowering colleagues with lower levels of technical skills to build professional solutions and serverless applications.Serverless databases also enable us to develop reliable solutions. Because of their inherent fault tolerance, serverless solutions offer very high levels of availability.They also introduce the possibility of geographic scale. In the most basic cases, this means that we can select which regions we want our data to be hosted from. Beyond this, there’s what’s known as geo-partitioning.This means that our data can be moved dynamically across different regions to minimize latency issues and even help with compliance.ChallengesHowever, there are potential downsides to serverless databases too, of course. Otherwise, everyone would be using them.One comes up in situations where we have particularly large data storage needs. We said earlier that serverless databases can allow us to scale more cost-effectively - but we’re still effectively paying a middleman for hosting.So, if we have a larger data set - or we know we’re going to scale our data in a predictable fashion - it might actually be more cost-effective to own our own servers.Similarly, many companies might still opt to stay away from serverless solutions because of control - or more accurately a lack thereof.Having our data stored on an external vendor’s infrastructure can open up new attack vectors - so for certain use cases, it’s common to prefer air-gapping data assets by hosting them ourselves.You might also like our guide to custom app development .Top 8 serverless databases for 2024Now, enough of the theory. The point of this article is just as much to check out some real-world examples of serverless database tools as it is to understand what they are and what they’re used for.Here are our top serverless databases in 2024.1. NeonDBFirst, we have NeonDB. NeonDB offers fully serverless Postgres databases as a service. There’s a generous free tier - with separate storage and compute to facilitate auto-scaling and bottomless scalability.So, we can connect to a NeonDB instance and query it just as we would any other Postgres database. We can also integrate directly with S3 and other object stores to offload cold data for highly cost-effective storage of large data sets.However, what sets Neon apart from your typical database - even serverless ones - is its branching capabilities.That is, we can create, manage, and merge Git-like branches relating to our datasets. So, we can make changes to our data separately from our production databases - for instance - and then merge them to the main branch when we’re happy with the outcome.This makes NeonDB highly suited to modern development workflows. It’s also open-source and offers incremental auto-backups.2. FaunaDBFaunaDB is a slightly different prospect. It’s a fully serverless, distributed document-relational database. So, as the name suggests, this occupies the middle ground between a traditional relational database and an object store.Data is stored in flexible objects which can be related to one another.With FaunaDB, this is delivered as a cloud API - creating an incredibly familiar, flexible experience for accessing and using our data.Data in Fauna is queried using FQL - or Fauna Query Language.But, don’t be alarmed or think this means you’re going to have to learn an entirely new way to manipulate data. FQL is heavily inspired by TypeScript, so it’s very intuitive if you have experience with other coding languages.Fauna enables us to spin up ACID-compliant, multi-region serverless databases in just a couple of clicks.3. CockroachDBCockroachDB is another SQL-based serverless database. It’s aimed at teams that need simple, scalable, and reliable solutions for managing data.With automatic scaling and sharding, CockroachDB offers a highly performant, low-latency platform for storing, accessing, and managing data, with minimal manual operations.There are also one-click deployments - along with an incredible free tier that offers 5 GB of storage.Cockroach is particularly strong for geographical scalability. We can effectively deploy our data anywhere in the world with almost no manual configuration.We can even leverage CockroachDB’s multi-cloud support to combine serverless databases with self-hosted storage, for more complex use cases.4. MongoDB AtlasMongoDB Atlas is a whole suite of tools that are built around an effective serverless database as a service.The database itself is a flexible, performant document store with a fully unified query API. So, we can query and use our data in just about any language or client application.Atlas is highly focused on empowering developers to build modern applications - with built-in workload isolation, continuous backups, native tooling, multi-region support, and automated data tiering.There’s also a whole range of additional features aimed at application building, including app services, native search functionality, internal data visualization, authentication tools, and much more.5. DynamoDBDynamoDB is Amazon’s serverless database. It’s another NoSQL option - but this time, we’re looking at a key/value store. Basically, this means that data is stored as sets of individual attributes and their corresponding values.The aim here is to create incredibly performant solutions at any scale. Key/value stores are particularly well suited to large, complex, or variable data sets.In fact, Dynamo boasts that applications built on its platform offer consistent single-digit millisecond performance. Even better, it’s a hugely cost-effective option - with the free tier offering 25 GB of storage and up to 200 million monthly read/write requests.On top of this, we can take advantage of close integrations with a vast array of other tools within the AWS ecosystem.So, it’s easy to leverage tools like S3, AWS Glue, CloudWatch, and more within projects - opening up huge possibilities in terms of analytics, monitoring, system logs, and security.6. FirestoreFirestore is a serverless NoSQL database built on the Google Cloud infrastructure. At its core, Firestore is another document store. In practice, though, it offers a huge degree of flexibility compared to similar document databases.So, we can easily establish complex, hierarchical data models using our own structures of nested documents and document collections.There are a number of options for accessing and manipulating your data. At the more advanced end of the spectrum, there are native SDKs for a range of languages, including Node.js, Go, Python, and Java.We can also query Firestore data via their cloud API - opening it up to users who might not be as au fait with traditional development.On top of this, Firestore offers advanced functionality around security, access control, and authentication - including Google’s Firebase Authentication and Cloud Firestore Security Rules tools.7. AWS AuroraAmazon Aurora Serverless is another serverless database within the AWS ecosystem. However, unlike DynamoDB, Aurora is more akin to a traditional relational database management system - like SQL databases.It offers full compatibility with both MySQL and Postgres - but Amazon claims that Aurora offers far superior performance and cost-effectiveness than traditional instances of these databases.Since we’re dealing with AWS infrastructure, we can expect a high degree of reliability. In fact, Aurora boasts 99.99% in its SLAs.The idea is to provide familiar experiences to SQL users in a powerful, serverless package - as well as eliminate the need for manual ops and database management.8. Azure SQLFinally, we have Microsoft’s offering - Azure SQL. Fundamentally, this is SQL Server - but offered as a service. However, Azure SQL also supports other data types, including graph, JSON, and geospatial - making it viable as a multi-model serverless database.Automatic updates make Azure SQL a particularly reliable service - with an SLA boasting 99.995% uptime.There’s also a whole host of more advanced capabilities, including built-in AI, intelligent threat detection, and native support for other Azure tools and functions.Azure SQL even offers elastic database pooling - helping to ensure cost-effectiveness, performance, and multi-tenant resource allocation. Ronan McQuillan