23 lines
775 B
Markdown
23 lines
775 B
Markdown
# 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
|