"Edge computing will solve your latency problems." — Every cloud vendor ever.
The reality? It might just move them somewhere harder to debug.
I've been building distributed systems for a while now. And every time a new edge platform drops, the marketing follows the same script: deploy closer to your users, cut latency in half, make your app feel instant. It sounds clean. It looks great on diagrams.
But here's what they quietly skip over — edge and global consistency are fundamentally in tension with each other. You can have one easily. Getting both at the same time? That's where the engineering actually starts.
Let's be honest about what edge computing does, what it doesn't do, and how to build systems that are genuinely fast and consistent.
Edge computing moves compute and data closer to the user by distributing workloads across geographically dispersed nodes — instead of routing everything back to a central origin server.
Today's major players:
Platform | Edge Locations | Runtime | Storage Option |
|---|---|---|---|
Cloudflare Workers | 330+ cities globally | V8 Isolates | R2, D1, KV |
Vercel Edge Functions | ~70+ regions (via AWS) | V8 / Node.js | Edge Config |
AWS Lambda@Edge | 600+ CloudFront PoPs | Node.js, Python | S3, DynamoDB |
Fastly Compute | 90+ PoPs | WebAssembly | Fastly KV |
Sources: Cloudflare Network Map, AWS CloudFront, Vercel Docs
The promise is real for static content, read-heavy workloads, and auth token validation. A user in Karachi shouldn't wait for a response to travel to a data center in Virginia when a node in Dubai or Mumbai can serve them in under 20ms.
That part works. The problem starts the moment you need writes.
This is the inconvenient truth no vendor puts in their homepage hero section. The speed of light in fiber optic cable is roughly 200,000 km per second — about two-thirds of its speed in a vacuum. That's not a software limitation. That's physics.
Route | Distance | Minimum Latency (one-way) |
|---|---|---|
London → New York | ~5,570 km | ~28ms |
Mumbai → Singapore | ~3,900 km | ~20ms |
Karachi → Sydney | ~11,200 km | ~56ms |
Tokyo → Los Angeles | ~8,800 km | ~44ms |
Minimum theoretical. Real-world RTT adds routing overhead, queuing, and processing.
When you're reading data, edge wins. A nearby node returns cached content fast. But the second that data needs to be written and reflected across all nodes globally, you're fighting the speed of light — and the CAP theorem.
In 2000, computer scientist Eric Brewer introduced the CAP theorem, formally proven by Gilbert and Lynch in 2002. It states that any distributed data store can only guarantee two of the following three properties simultaneously:
Since network partitions are unavoidable in distributed systems, you're always choosing between C and A.
"A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." — Leslie Lamport
This is where edge platforms get quietly honest in their docs. Cloudflare KV, for example, is explicitly eventually consistent — writes propagate globally in under 60 seconds, but there's no guarantee a read immediately after a write returns the new value.
That's fine for feature flags. It's not fine for bank balances.
Not all consistency is created equal. Here's the practical spectrum:
Say you're building a collaborative SaaS tool — think project management, shared docs, anything with real-time state.
Here's what happens when two users in different regions edit the same record simultaneously:
User A (London) → writes "Status: Done" to EU edge node
User B (Tokyo) → writes "Status: In Progress" to APAC edge node
Both nodes accept the write.
Both users see a success response.
The nodes sync 2 seconds later.
One write silently wins. The other is lost.
No error. No conflict warning. Just silent data loss. This is the edge latency lie in its purest form — the appearance of speed masking a deeper consistency failure.
CRDTs are data structures mathematically designed so that concurrent writes from multiple nodes can always be merged without conflict. The merge is deterministic regardless of order.
Figma rebuilt their multiplayer engine around CRDTs. Notion uses them for collaborative blocks. Automerge and Yjs are two solid open-source implementations you can use today.
For strong consistency across distributed nodes, you need a consensus algorithm. Raft (designed by Diego Ongaro and John Ousterhout, 2014) is the readable, implementable choice. It's the backbone of etcd, CockroachDB, and TiKV.
The trade-off is latency — a write must be acknowledged by a quorum of nodes before it's committed. If your quorum spans continents, you're paying cross-region latency on every write.
Instead of trying to sync everything globally, you partition data by region. A user in Europe owns their data on EU nodes. A user in Asia owns theirs on APAC nodes. Cross-region reads only happen when necessary.
CockroachDB and Google Spanner both support this natively.
In 2012, Daniel Abadi extended CAP into PACELC, which adds the latency dimension CAP ignores:
If there's a Partition: choose between Availability and Consistency.
Else (no partition): choose between Latency and Consistency.
This is more honest for edge systems. Even when your network is healthy, you're still making a trade-off between responding fast from a local node vs. waiting for a globally consistent answer.
Here's a practical decision guide:
Use Case | Best Approach | Consistency Model |
|---|---|---|
Static assets, HTML | Pure CDN/Edge cache | N/A |
Auth tokens, JWT validation | Edge middleware | Eventual (short TTL) |
Real-time collaboration | CRDTs + WebSockets | Causal / CRDT merge |
Financial transactions | Single-region primary DB | Strong / Linearizable |
User profiles (read-heavy) | Edge cache + async replication | Eventual |
Inventory / stock levels | Consensus DB (CockroachDB) | Strong |
Analytics writes | Event queue + async processing | Eventual |
The best-performing distributed systems I've worked on don't try to do everything at the edge. They're deliberate about what goes where:
Write paths stay consistent. Read paths get optimized at each layer. You stop expecting the edge to do things it was never designed to do.
Edge computing is a genuine improvement for a specific class of problems. It cuts latency on reads, reduces origin load, and improves perceived performance for geographically distributed users.
But it doesn't solve consistency. It relocates the trade-off.
The engineers who get this right aren't the ones chasing the fastest edge network — they're the ones who are precise about what data needs to be consistent, where writes are authoritative, and what their users can actually tolerate.
Physics isn't a product bug. Design around it honestly.