Golem is a next-generation open source platform for building and running highly reliable services. The platform is powered by a new abstraction called durable computing, which lets you quickly build and deploy highly robust services in a fraction of the time otherwise required.
Take a peek behind the scenes into how the Golem platform delivers on its promise of transparent durable execution and automatic error recovery.
The building blocks of your Golem application are worker templates. Worker templates represent a component of your overall application that has been compiled to WebAssembly. Worker templates have a public API (defined using WIT, an alternative to Protobuf), your business logic, and the rest of your code, including whatever frameworks and libraries you use.
Golem uses worker templates to create workers, which are running instances of your templates. Workers are isolated from each other and different workers from different versions of the same worker template may execute concurrently without issue. Golem allows you to use one worker for each incoming request, or you can use the same worker to handle related requests.
Workers execute independently from one another. Failures in one worker (even catastrophic ones, such as out of memory) have no effect on other workers. Deploying new versions of a worker template only affects new workers created from the template. Older workers created with earlier templates continue to run unaffected by the updated worker template.
If you execute your worker directly, then it interacts directly with your operating system, and if your machine dies, your worker dies. But when you execute on Golem, then Golem records all your worker’s interactions with the outside world. This log of host interaction (oplog) can be used for recovery in the event of a failure that requires the worker to be relocated to a healthy node.
Because Golem proxies all host interactions, it is able to identify failed interactions that may be recoverable. For example, HTTP requests, gRPC calls, and database queries. Golem automatically retries recoverable interactions with third-party cloud services, databases, and microservices, using sophisticated and user-configurable retry policies.
Golem actively supervises executing workers. In the event of a failure, such as the node a worker is executing on is restarted or goes down, Golem relocates the worker to a new node. Golem uses the oplog to restart the worker, and play back all host interactions, thus fully restoring the complete state of the worker to the moment before the failure event occurred.
Golem’s durable execution technology ensures that your services execute flawlessly, even in the presence of restarts, updates and failures. Focus on business logic, without having to consider complex failure scenarios.
Your services automatically execute with maximum, fine-grained durability, no matter which language or technology stack you choose. Enjoy the full benefits of durability without having to manually denote ‘activities’.
With Golem’s durable execution technology, in-memory data structures like arrays and maps become as durable as database tables. Use fewer databases, caches, and queues, without compromising strong ACID guarantees.
Golem fully isolates and sandboxes at the level of each request, so even fatal errors in the processing of one request have no effect on the processing of other requests. It’s a new generation of bulletproof.
Golem’s intelligent and automatic error recovery helps protect you from the instability inherent in using networked cloud services, like databases and APIs. Embedding manual retries in your app logic is a thing of the past.
Use any programming language or technology stack. Thanks to the WASM component model supported by Golem, you can even use multiple programming languages in building your application, all of which interact in a type-safe way.
By supporting the WASM component model, Golem lets you separate your requirements (such as database, key-value store, blob store) from your infrastructure provider. Ditch lock-in and swap your provider, or run on your own cloud.
Golem is fully open source, brought to you by a team with a proven track record of delivering Enterprise-grade solutions for developer infrastructure. Build on open infrastructure that will thrive for decades.
All standards supported by Golem, including formats and specifications, are open. Ranging from WIT to WASM to WASI, Golem is built to eliminate vendor lock-in and last decades.
In just a few minutes, you can go from zero to having your first invincible backend running in Golem Cloud.