How we use Cloudflare's Durable Objects to globally scale our SaaS event platform
As bootstrapped founders, every technical decision carries weight. We're constantly balancing performance, scalability, and cost - especially as we build an events platform designed to serve attendees all over the world. One of the trickiest (and most expensive) areas to get right? Databases.
In this post, we’re breaking down how we're approaching database architecture for SixSides to support global events without blowing the budget. Whether you're building a SaaS app or running international events, this is a behind-the-scenes look at the trade-offs we're making to serve users from Sydney to Scandinavia.
The challenge: performance at a distance
Let’s say you’ve got a web app hosted in Sydney, and you suddenly get a customer in Denmark. Every time someone in Denmark opens your app, their device has to reach all the way across the world to talk to your backend infrastructure. This distance introduces latency - and depending on your app’s complexity, that latency can compound and result in a painful experience.
For SixSides, where attendees interact with event data in real-time (asking questions, checking agendas, receiving announcements), that delay isn’t acceptable.
Our previous setup
For our first production event (Laracon AU), we used a serverless MySQL database hosted on AWS. It worked great for one-time events with predictable bursts of traffic. But the cost of keeping serverless databases live globally - and constantly “cold starting” them - made it impractical for a platform that needs to be always-on and affordable.
We needed a better solution:
- Real-time capable
- Low latency globally
- Cost-effective at small scale
- Easy to scale as we grow
Enter: Cloudflare Durable Objects
The breakthrough came when we started using Cloudflare Durable Objects. At first, we used them to enable real-time collaboration in our new theme designer. But soon we realised: durable objects could play a role in how we handle our event data globally.
What are durable objects?
In plain terms, they let you store and update small bits of state (like an event's theme or attendees list) on Cloudflare’s global edge network. So instead of always calling back to a central database in Sydney, our app can access data from the closest edge location to the user - whether that’s in Paris, Toronto, or Tokyo.
This gives us:
- Blazing fast access times
- Near real-time updates via WebSockets
- Minimal infrastructure to maintain
- Rock-bottom costs (we're talking ~$5/month for many use cases)
The hybrid model we’re building
Here’s what we’re moving toward:
Regional database clusters:
We’ll maintain fixed-size databases in key regions (e.g. Sydney, US West, Europe) using traditional relational databases. This gives us solid foundations without relying entirely on serverless.
Durable object caching layer:
When an attendee visits an event app, they get all the data they need from Cloudflare’s edge via a durable object. It acts as a real-time mirror of the source database.
Real-time sync via WebSockets:
If an organiser updates a speaker bio or someone asks a question during a talk, those changes are pushed instantly to every connected user - no reload required.
Event-based data storage:
Each event lives in its own data silo, making it easier to deploy it in the region that makes the most sense for that customer.
Benefits for bootstrappers
If you’re bootstrapping a SaaS, this model has some major perks:
- Costs are predictable: We avoid unpredictable serverless charges by keeping fixed-size DBs.
- It's incredibly fast: Your customers get low-latency access wherever they are.
- You scale only when needed: No need to spin up global infra until you have users in those areas.
- You keep control: You’re not locked into one massive, complex distributed system.
When this wouldn’t work
To be fair, this setup isn't for everyone. If your app needs complex queries across thousands of rows of shared data in real-time, this approach might fall over. Durable objects aren’t full-blown databases - they’re more like smart, stateful caches with real-time capabilities.
But for an app like SixSides, where data is scoped to a single event, this architecture is a game changer.
What’s next for us?
We’re now in the process of migrating our mobile app infrastructure to use this model. Our first goal: support an event in Denmark without compromising performance.
Beyond that, we’re eyeing freemium usage for small meetups around the world - something this setup makes viable without racking up huge cloud bills.
TL;DR
- Databases don’t scale cheaply or easily across the globe.
- Cloudflare Durable Objects give you a real-time, distributed edge layer that can mirror your DB.
- By combining them with small regional databases, you can deliver fast experiences to users anywhere.
- Perfect for low-budget SaaS companies with global ambitions.
Got questions about this setup? Reach out via LinkedIn.
And if you want to hear us talk through it in more depth, check out Episode 14 of Our B2B SaaS Journey.