Golden path templates
Standards documents are read once and ignored; templates are used every time. A generated starting point is how consistency actually happens, because it makes the correct setup the path of least effort.
Method
- Generate a service that works end to end. Builds, tests, deploys, and reports health from the first commit, since a template requiring assembly is not a template.
- Encode the defaults rather than documenting them. Logging, metrics, health checks, and security configuration built in, so teams inherit them without deciding (see observability).
- Keep templates few. One per genuine service type, because a catalogue of twenty means nobody knows which to choose.
- Make generated code owned by the team. They must be free to modify it, and a template that cannot be edited becomes a constraint rather than a head start.
- Provide a path to updates. Templates improve, and existing services need a way to adopt changes without a manual diff (see dependency-management).
- Test the templates in CI. A broken template is discovered by whoever tries to start a service, at the worst moment.
- Evolve them from real usage. What teams add or delete after generating tells you what the template should include.
Boundaries
Templates set a starting point and cannot enforce ongoing conformance, which needs different mechanisms (see paved-road-adoption). They encode current best practice and go stale. Over-templating produces services carrying features they never needed.