Introducing Calculated World

Calculated.World is now live! Over the past few months I’ve been experimenting a lot with WebAssembly, trying to understand its limitation and its strengths. Both are pretty clear:

Limitations

Strengths


The modern cloud

There’s been several key cloud services that I’ve found very influential.

AWS S3 provided one of the first truly cloud abstractions, where it’s not a file system just on the internet, but it’s a different model that can unlock better patterns, which you can treat like Mary Poppin’s infinite magic bag.

AWS Lambda demonstrated that you can upload code to an S3 bucket and then download it on-demand to a newly spun up sandboxed instance (that’s why there’s a coldstart) and have that be excellent as a model.

Vercel proved you can using content addressing to break up an application into fine grained deploys of individual Lambdas/Edges/Static Assets (that’s why their Next.js page model is such a great fit), and keep around old deploys forever since each deploy is really just a Git Tree pointing at a different set of individual instances.

Cloudflare Workers showed that a more limited run time environment in terms of programming capabilities, mixed with some unique strengths such as “why manage regions when you can just deploy everywhere in the world?” and interesting new cloud primitives such as KV and Durable Objects.

The broad strokes architecture of Calculated.World

Calculated.World takes those ideas and technologies and remixes them into a much simpler model — but one which unlocks capabilities I haven’t seen anywhere else.

The best way I can describe it is it’s like Lambda running WebAssembly on Edge servers all over the world. For now it’s stateless (there’s nothing persisted in the cloud), though I intend to explore that more in the future.

Pure functions downloaded quickly to anywhere able to run in any environment. Server. Edge. Browser. Native. I think that’s pretty powerful.