# mini-platform-control-plane Learning project for building a small Go control plane for local environments and workloads. The project is intentionally local-first. It starts with in-memory components and fake providers, then adds gRPC, Temporal, MongoDB, Helm rendering, Kubernetes integration, and observability in incremental milestones. ## Learning Goals - Idiomatic package design. - Small interfaces. - `context.Context` cancellation. - Wrapped errors with `errors.Is` and `errors.As`. - Table-driven tests. - Concurrency safety. - Idempotent operations. - gRPC and protobuf APIs. - Temporal workflows and activities. - Clean separation between API, domain, storage, provider, orchestration, and infrastructure adapters. ## Local Commands ```bash make test make fmt make tidy ``` ## Initial Scope Milestone 1 defines the domain model: - `Environment` - `Workload` - `Operation` - typed validation errors - basic status transitions No private packages or internal infrastructure are required. See: - [Architecture](docs/architecture.md) - [Milestones](docs/milestones.md)