FaunaDB, from the technical team that led the Twitter database team, have come out and announced their offering of a new style of database aimed at the serverless model.
Aside – Serverless isn’t really serverless – that is one of its misconceptions.
What it means is that you as the consumer no longer think in terms of a physical (or virtual) servers – you instead think of just executing a function or small piece of code.
The service providing you with the environment to execute that function will worry about which server to run it on provisioning as many servers as required to cope with scale. You are only charged for the execution of the function.
It is like being charged on a per-call API call. Contrast that against being charged for the cost of a server running all the time. Functions have only a limited time to execute within and can’t generally be stateful (think global variables).
Databases are historically one of the most difficult components within the Enterprise to properly scale. Provisioning enough scale for a database is a fine art with a lot of trade-offs to reach some of the dizzy scales that are required. You are either over-paying for unused resources, or conversely, have not got enough resources to cope with sudden spikes. But what if you didn’t have to think about all that nonsense and just thought about storing and querying your data without consideration of all the logistics of servers and scale?
And this is what FaunaDB is attempting to do.
Instead of spinning up a database farm, like you would with Amazon RDS/DynamoDB, you simply call the functions to store or query your data. You are charged on a per-usage along with a per-GB-per-hour rate. To keep the billing simpler, FaunaDB charges using points, where different functions will use different amount of points, depending on the complexity and CPU usage. You are then charged for the points you consume.
- Every 1,000 points (about 1,000 queries) costs $0.01
- Every gigabyte-hour of data stored costs 20 points, or $0.0002
It is not clear just how much points are used for an average call.
FaunaDB is essentially a NoSQL database, but with the ability to do joins, foreign keys and unique indexes, while managing this in a globally replicated consistent architecture.
On the surface, this looks a very solid offering, from a highly qualified and pedigreed team. The question though is how reliable is it? While the appeal of not having to run or manage servers, you do lose a lot of control when it comes to being able to do anything when (not if but when) FaunaDB runs into problems. You have nothing to do but wait and hope it all comes back to normal.
In fairness, this problem is not unique to FaunaDB, the more control you yield, the more reliant you become on others providing you the service you need to run your business. Your customers will complain to you, not Amazon or FaunaDB, and you will always look weak if you turnaround and blame another.
The question you always have to ask – what price are you willing to put on your reputation when things go wrong? Even Amazon has had outages.
FaunaDB is an exciting entry to the world of SAAS database offerings and will be interesting to see how this evolves, and which one of the big 3 cloud providers will scoop them up.