All you care to eat data
Now we get into something that should interest most people regardless of your chosen stacks: data. As you can imagine, this is a topic that can and will span multiple issues. This issue focuses on data storage with a serverless style model.
This is an area which is still very much developing, and I hope to see more offerings emerge, even if they aren’t free. Typically if you wanted a cloud database, you had to provision it up front. You would pay for so many reads and writes per unit of time, or possibly even a number of cores and memory.
Now we are starting to see database priced based on the amount of active storage and the number of writes and reads, which means like with serverless style functions, if you aren’t using them you aren’t paying for them. Couple that with a free threshold below which you don’t pay anything and you have some great options for hobby projects or experiments.
That said, these aren’t really apples to apples comparisons. Or at least you can’t really pick one based on the amount of free stuff you get. There are other factors to consider like query interfaces, client libraries, real-time capabilities and documentation. And like everything there will be some that naturally fit better with some projects or ecosystems.
FaunaDB isn’t as big a name as some of the others in this issue, but it is possibly the most exciting. FaunaDB is built from the ground up to be utility priced. It also has native support for GraphQL meaning you don’t need to stick an app server in front of it. As for the free tier, you get 5GB with 100K reads and 50K writes per day. It also includes 50 MB of data outward per day. And unlike some free tiers, this one allows scaling up past the free tier to utility pricing without interrupting your data. Fauna seems to be doing a lot of advocacy with the JAMStack, and in particular with Netlify, which I’ve mentioned before. Of the options in this issue, Fauna is the only one which offers a relational view model, along with document and graph models.
I’ve listed Google’s Firebase before, in the context of static hosting because they do that too. However, a cloud real-time database is what they are known for. Their original Realtime Database is slowly being replaced with the Cloud Firestore which models data as separate documents (rather than one giant document) and operates a bit faster. As for what you get on the free tier, it is 1 GB of data with 50K/day reads and 20K/day writes. It is also worth noting that Firebase has a good sized ecosystem with a number of other tools and services which integrate.
Cloudant is a hosted CouchDB offering from IBM. I have long been a fan of CouchDB as it has an HTTP based API, and can even host files if necessary. It also has a live change feed which you can use for real-time capabilities. It works really well with tools like PouchDB and Hoodie, allowing you to build no backend apps. Unlike the other options here, the free tier of Cloudant is capped. 1GB of storage, and 20/sec reads and 10/sec writes. It is worth noting that the read/writes are a couple orders of magnitude more than the previous offerings.
DynamoDB is Amazon’s non-relational offering. If you are already invested in the AWS ecosystem, this is an attractive option especially since you get 25GB of free storage. However, while cheap, there aren’t any free reads or writes. As you would expect of an AWS service, the ecosystem to support Dynamo is fairly strong.