Subchapter 28.7
references/phases/design/design.mdMarkdown6 KBView on GitHub
Single-pass mapping engine: translate each Heroku resource to its AWS equivalent using deterministic lookup tables. No clustering, no dependency graphs — resources are processed as a flat list in input order.
Composed of a mapping fragment + one assembler (declared in the frontmatter
_fragments/_assemble); the interpreter runs the fragments whose _trigger is
true, then the assembler, and evaluates the _knowledge _when guards to load only
the sizing tables the inventory needs (see INTERPRETER.md § _knowledge). The
compute target branch is selected by design_constraints.compute_target: Elastic
Beanstalk is the default, Fargate is the direct-container override, and EKS is the
Kubernetes-team alternative. The preferred shape is compute_target.default plus
per-formation overrides[]; legacy compute_target.value is accepted only for
reused older preferences. The EKS branch (design-eks, fired by its _when trigger
when the global compute target selects EKS) is an ALTERNATIVE path, not an addition:
it maps ALL formations to EKS pods + an eks_cluster aggregate instead of the
EB/Fargate paths. On the EB default path, persistent non-web formations with
quantity > 1 route to Fargate to preserve Heroku worker capacity because EB
SingleInstance cannot horizontally scale that process model.
This phase covers Heroku → AWS Design ONLY.
FORBIDDEN — Do NOT include ANY of:
Your ONLY job: Map each Heroku resource to its AWS equivalent. Nothing else.