Golem is the first serverless computing platform with software-defined reliability, letting you build reliable distributed systems with simple code.
The building blocks of your Golem application are components. Components represent a part of your overall application that has been compiled to one or more WASM components. Components have a public API (defined using WIT, a Protobuf alternative), your business logic, and the rest of your code, including whatever frameworks and libraries you use.
Golem uses components to create workers, which are running instances of your components. Workers have a unique identity, which you can specify or let Golem randomly generate. Golem allows you to use new workers for each incoming request, or you can use the same worker to handle related requests over an indefinite period of time.
Workers execute independently from one another. Even catastrophic failures in one worker, such as out of memory, have no effect on other workers. Deploying new versions of a worker component only affects new workers created from the component. Older workers created with earlier versions continue to run unaffected.
Because Golem has a custom executor for WASM components, it behaves differently than direct execution. When you deploy on Golem, Golem records all your worker’s interactions with the outside world into an operation log (oplog). The oplog can be used for automatic observability, including tracing and profiling, and Golem uses it for fault-tolerance.
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 fault, such as the node that a worker is executing on is restarted or downed, Golem relocates the worker to a new node. Golem restarts the worker and uses the oplog or a memory snapshot to fully restore the state of the worker to the moment before the fault, providing transparent fault-tolerance.
Golem’s durable execution technology ensures that your logic executes flawlessly, even in the presence of faults, software updates, and cloud flakiness. 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 durable computing 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 code at the level of each request, so errors in the processing of one request have no effect on the processing of other requests. It’s the gold standard of isolation, for 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 application 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 storage) from your cloud 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. From WIT to WASM to WASI, and everything in between, Golem is built on an open standard that eliminates vendor lock-in.