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).