Skip to main content

ADR-0004: All platform behavior lives in S3, none in binaries

Status

Accepted

Context

Templates, environment profiles, runtime images, and security profiles change far more often than platform code. Compiling them into the operator couples platform-team iteration to binary releases.

Decision

Everything behavioral is a YAML document in the config bucket: platform/, runtime-images/, templates/<name>/<version>.yaml, defaults/<env>.yaml, security/<profile>.yaml, middleware/. Templates are versioned; name@version pins, bare name follows latest.yaml. Documents are fetched through a TTL cache.

Consequences

  • Publishing a template = aws s3 cp. No rebuild, no redeploy, and because of ADR-0002, no effect on running apps.
  • The bucket is the platform's control plane: it must be versioned, access-logged, and writable only by the platform team.
  • Missing documents fail closed with explicit errors (an unknown template is a 400 at upload, never a guess).