All the talk of “not paying” for idle capacity smacks of hype. Someone is paying for idle capacity. Either Fauna is consciously losing money on each customer right now, or the idle costs are being rolled into per-use costs. Which is it?
There are fixed costs to running even a tiny cluster. You want to be in multiple data centers for redundancy. You want machines that won’t get swamped the second your site gets linked on a popular blog. All that for what might only be a few hundred requests a day. The minimum hardware you are running can support orders of magnitude more traffic.
If you use the cloud managed by FaunaDB, you’re only paying for the resources you use. So it’s much cheaper for small apps, without Fauna losing money. And for big apps it’s still cheaper when you consider the cost of a database operations team, maintaining hardware node, etc.
This is the same story as virtualization and containers. The more heterogenous workloads you run on a FaunaDB cluster, the better utilization will smooth out.
It’s a real issue for a service like Dynamo. You provision it based on an expected RPS, which is essentially translated to a static resource allocation on their side, and is not shared with another tenant.
This is fine for situations where you have a predictable level of throughput, but in cases where RPS is unpredictable and spikes, you must provision based on your expected peak, rather than your average if you don’t want to be intermittently rate-limited.