Comment by danpalmer
13 hours ago
From the FAQ as to how they are so cheap...
> Our technical infrastructure is our secret weapon. We're built from the ground up on Cloudflare's global edge network using reactive systems and local-first architecture. With modern, secure network protocols, we've reduced infrastructure costs by 100x compared to Slack or Teams. Their systems were built over a decade ago on legacy infrastructure that can't be easily modernized. We started fresh—and pass those savings directly to you.
...but this doesn't pass the sniff test. Cloudflare's products are value-add on value-add, they're a long way from raw infrastructure costs. At a small scale the fact you can pay as you go might mean they're cheaper than VMs or machines to get a good UX, but at scale they're hugely expensive.
Their technical infrastructure sounds like their Achilles heel in the long run.
I appreciate the skepticism—usually 'Managed Platform' does imply a heavy markup over raw compute. But for a chat application specifically, the math leans heavily in favor of Cloudflare Workers (Isolates) over traditional VMs/Containers.
You mentioned scale: Cloudflare's free tier covers the first 100k requests/day, but the paid tier is where the economics really shine at scale. We pay roughly $0.30 per million requests
In the traditional architecture (Slack/Teams), you pay for provisioned capacity to handle peak load. That means you are paying for massive EC2 clusters and RDS instances 24/7, even when usage dips at night. You pay for the idle time.
With Cloudflare Workers, we pay strictly for execution time. Chat is incredibly bursty and text data is small. If no one is typing, our infrastructure cost is literally $0. We don't pay for idle CPU.
Even at scale, the cost of executing a Worker for a few milliseconds to route a JSON packet is significantly lower than the Total Cost of Ownership (TCO) of maintaining a global fleet of VMs, load balancers, and a DevOps team to manage Kubernetes. We trade 'raw metal' efficiency for 'operational' efficiency, which is where the real savings are
I still think you're looking at this from a very small perspective (and to be clear, to begin with that may be the right call, it'll just bite badly at some scale).
It isn't about the cost of processing one message, it's about the cost of processing a thousand a second, or a million a second.
Fundamentally, Cloudflare make their money by taking raw infrastructure, slicing it into a million tiny pieces, paying 2-5x overhead to be able to do that, but then pricing each at 10-100x the cost to serve. It's cheap per request, per message, etc, but it's an incredibly expensive way to rent the infrastructure.
It's also a false dichotomy to say that the alternative is provisioning for peak load. There are many points on the spectrum, from Cloudflare's offering which is about as "serverless", high level, and expensive as you can get, through to buying your own servers.
Chat isn't really "bursty" at scale, it's more seasonal on a daily/weekly basis. That's pretty easy to scale over time on any cloud provider. Autoscaling groups were pretty much designed for this. GKE Autopilot is a more modern version, but there are lots of ways to do it.
I know as a startup it's important to optimise for right now, and CF might well be the best option for you. But I stand by this being your Achilles heel, it's a very expensive way to run the infra, and when you're delivering 1m messages a second, that's approaching a $1m/month bill just for request processing, let alone storage, indexing, etc.
> We pay roughly $0.30 per million requests
But the per-request cost is not the only one. You're also paying $0.02 per million CPU-microseconds. If you do the math, that's easily double or triple the equivalent hourly charge for VM instances from the various major cloud providers.
For now, you're benefiting from the zero idle charges and Cloudflare's generous free allowance, because you're at a small scale. As you get bigger, the effect of those factors -- as a fraction of your total spending -- will decrease by a lot, and you'll still be paying the inflated unit costs.
This sounds reasonable (and the 30 microcents per request is pretty cool), but I wonder how do you handle storage and indexing. It still costs you, even when no one is typing.