Context
Earlier architecture docs referenced a service-core CRUD microservice as the default execution model. Current implementation has evolved:
apps/api-gatewayowns client-facing domain operations and orchestration.apps/edge-agentruns externally (Windows/Linux hosts), not as an in-cluster Helm service.- Edge runtimes communicate with gateway internal edge endpoints for registration, connectivity heartbeat, task execution, and upgrade status.
Decision
Adopt and document the current model as the active architecture:
- Keep domain CRUD/orchestration logic in
api-gatewayby default. - Use external edge runtimes for distributed workload execution.
- Introduce new microservices only when justified by workload/operations (CPU-heavy, cron/background, independent scaling/SLO).
Consequences
- Simpler operational topology: fewer always-on in-cluster app services.
- Clear worker control plane: worker registry,
lastSeenAt,targetVersion, and upgrade status are gateway-managed. - Cross-platform execution: edge workloads run on Windows/Linux hosts outside cluster boundaries.
- Tradeoff: edge lifecycle reliability depends on heartbeat health and release metadata correctness.
Notes
This ADR supersedes assumptions in earlier docs that described service-core as the default CRUD runtime.