Deployment
Golem Services are distributed as Docker images. They are available in Golem Services Docker Hub (opens in a new tab). Each Docker image is built for the following architectures:
- linux/amd64
- linux/arm64
The services are using the following storage backends:
- Relational Database (RDB) - PostgreSQL (opens in a new tab) or SQLite (for running locally)
- Redis (opens in a new tab)
- Blob storage - Shared File System or S3
Golem Services
The following sections provide a description of each service.
Cloud Service
cloud-service (opens in a new tab) is responsible for storing entities like projects and accounts in RDB.
See also: configuration (opens in a new tab), environment variables (opens in a new tab), docker image (opens in a new tab)
Component Service
golem-component-service (opens in a new tab) is a component registry/management service. The service is using RDB and Blob storage as data storage.
See also: configuration (opens in a new tab), environment variables (opens in a new tab), docker image (opens in a new tab)
Debugging Service
golem-debugging-service (opens in a new tab) is a special executor for running debugging sessions, controlling the execution of agents step by step.
See also: configuration (opens in a new tab), environment variables (opens in a new tab), docker image (opens in a new tab)
Worker Service
golem-worker-service (opens in a new tab) provides APIs and API Gateway functionality for agents and acts as a routing service for worker executors. The service uses an RDB as data storage.
See also: configuration (opens in a new tab), environment variables (opens in a new tab), docker image (opens in a new tab)
Worker Executor
golem-worker-executor (opens in a new tab) is responsible for running the agents that belong to assigned shards. The service uses Redis and Blob storage as data storage.
See also: configuration (opens in a new tab), environment variables (opens in a new tab), docker image (opens in a new tab)
Shard Manager
golem-shard-manager (opens in a new tab) is a single node in charge of maintaining the worker executors' shard assignments; only one instance can be alive at any given time. The service uses Redis as data storage. See also: configuration (opens in a new tab), environment variables (opens in a new tab), docker image (opens in a new tab)
Component Compilation Service
golem-component-compilation-service (opens in a new tab) is a sidecar service responsible for compiling components. The service uses Blob storage as data storage.
See also: configuration (opens in a new tab), environment variables (opens in a new tab), docker image (opens in a new tab)
Golem Router
golem-router (opens in a new tab) is an Nginx (opens in a new tab) proxy for Golem APIs.
See also: configuration (opens in a new tab), docker image (opens in a new tab)
Deployment Variants
For deployment variants, see the following sections: