Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Golem Unveils a Resilient Computing Platform for Serverless Workers with WebAssembly Component Model

Golem Unveils a Resilient Computing Platform for Serverless Workers with WebAssembly Component Model

Recently Golem released its flagship product Golem Cloud, a durable computing platform allowing developers to build and deploy long-running, stateful serverless workers that are resistant to failures, upgrades, and updates. The product is currently in developer preview.

Golem Cloud is built on WebAssembly (WASM) with the component model. Any WebAssembly component deployed on the Golem Cloud will be executed durably until the component is done. Developers can compile their project (written in languages like Rust, Zig, Go, Grain, C/C++ that target WASM) into a WASM Component and upload it using the Golem CLI or the Golem REST API into Golem Cloud. Subsequently, Golem prepares the component for fast instantiation and assigns the component a globally unique identifier, which developers can use for creating new running instances of the component.

Example of a worker (Source: Golem Cloud Website)

Under the hood, the platform will continuously persist each serverless worker's running state and transfer this state to new machines as necessary in response to hardware failures, hot spots, upgrades, and updates. The company coined the term "invincible" for workers deployed on the platform.

John A de Goes, an OSS contributor, explains in a Golem Cloud blog post:

The nodes that run your workers are continuously snapshotting the state of workers. Not just their heap memory but also their stack memory, and including the so-called instruction pointer, which determines where in some procedure your code is executing at the current moment in time. A full snapshot of everything.

In addition, he explains the rationale for the snapshots to allow recovery after failure:

These continuous snapshots are not whole-memory snapshots, because that would reduce performance and increase latency. Instead, the snapshots are implemented through capturing tiny incremental deltas, which permits reconstructing the full state during recovery, while keeping performance high and latency low.

Running serverless workers such as functions is also possible in, for instance, Microsoft Azure with Durable Functions that includes a runtime to execute workflows and actors. However, under the hood, durability is provided through Azure storage containers, tables, and queues with the option to change to Netherite. In addition, AWS offers Step functions to execute workflows with built-in state management. Both differ from the Golem Cloud in respect of the WebAssembly component model.

However, there is a comparable offering from Fermyon Technologies, who earlier this year launched Fermyon Cloud as the way to deploy and manage cloud-native WebAssembly applications through their developer tool, Spin.

In a Serverless Daily post, the authors wrote:

Golem Cloud is an interesting new serverless platform that has popped up this week that takes a different approach to most platforms.

In addition, a respondent on a Hacker News thread commented:

The paradigm they are going for seems less like scale-to-zero and more like sure-wake or never-fail or infini-migrate workers, and that bodes well for being able to be charged according to the exact amount of active ram that your worker uses moment to moment rather than per invocation on an inflexible amount of ram.

Lastly, Golem Cloud currently offers a free preview plan that includes ten active workers, 10,000 inactive workers, and 10 MB per worker – other plans are coming soon.

About the Author

Rate this Article