775 B
775 B
ADR-003: Go for Forge Agent
Status
Accepted
Context
The agent needs to run on Linux, Windows, and macOS with minimal dependencies and resource usage.
Decision
Write the agent in Go, producing statically-linked binaries for each platform.
Rationale
- Go compiles to a single binary with no runtime dependencies
- Excellent cross-compilation support (GOOS/GOARCH)
- Small memory footprint suitable for resource-constrained devices
- gopsutil library provides cross-platform system metrics
- Strong standard library for HTTP, JSON, and OS interaction
Consequences
- Agent is built separately from the TypeScript monorepo
- Agent version is tracked in the source code and reported in heartbeats
- Future: could use Go plugins for platform-specific adapters