Fundamentals
Golem is a serverless computing platform that helps you build and deploy reliable distributed systems with simple code.
In this section, you will learn some key terms and architecture that will help you better understand Golem.
Key Terms
- WASM. WebAssembly (opens in a new tab), or WASM, for short, is a specification for a portable and secure virtual machine. Software compiled to WASM can execute on any platform and architecture using a WASM Runtime.
- Components. In WebAssembly, components are the basic building block of applications, backends, and web services. Components requires certain capabilities from the host platform (like input/output), and expose a typed public API.
- Workers. In Golem, workers are running instances created from components, with their own resources, such as RAM, file system, and environment variables. Workers are created from external events like requests or by other workers.
- Invocations. In Golem, the fundamental unit of work is an invocation of a function on a worker that is part of its typed public API. Functions may require typed parameters as input and may return typed values as output.
- High-Reliability. Highly reliable systems must execute critical logic uninterrupted, even through faults, updates, and cloud flakiness. Golem provides transparent high-reliability, regardless of language or technology stack.
- WIT. WIT is a standard of WASM, similar to Protobuf, which allows developers to export a typed public API from components. Through Worker Gateway, Golem lets you build HTTP or gRPC APIs atop these typed public APIs.
Golem Architecture
Golem is architected as a series of independent and modular components, ranging from command-line tools to core systems responsible for deployment and execution.
- CLI. Golem CLI is a command-line interface to Golem, which has the ability to create and manage components and workers, perform invocations, and even connect to live workers for diagnostics and troubleshooting.
- Worker Gateway. Worker Gateway executes requests by delegating their processing to specific functions on specified workers. Worker Gateway can extract worker input from JSON, and produce JSON from worker output.
- Worker Executor. Worker Executor creates and executes the logic of many individual workers, potentially created from different components, exposing their public typed API via the Worker Gateway.
- Golem Services. Golem Services runs a variety of different HTTP endpoints that allow programmatic management of all the features of Golem. CLI and Console are both implemented atop Golem Services.
- Shard Manager. Shard Manager handles both supervision of individual executor nodes in the Golem cluster and the task of partitioning all workers across the available executor nodes in a Golem cluster.
- Golem Cloud. Golem Cloud is the fully managed version of Golem, suitable for companies looking for a true zero-ops approach to building highly-reliable distributed systems with simple code.
- Console. Console is a graphical user-interface designed to help manage accounts, components, and workers on Golem Cloud. It provides high-level ways of performing many of the same tasks that are supported by CLI.