Marketplace

golden-paths

Use when designing standardized development workflows, paved roads, or opinionated defaults. Covers golden path patterns, template design, developer workflow optimization, and guardrails.

allowed_tools: Read, Glob, Grep

$ Instalar

git clone https://github.com/melodic-software/claude-code-plugins /tmp/claude-code-plugins && cp -r /tmp/claude-code-plugins/plugins/systems-design/skills/golden-paths ~/.claude/skills/claude-code-plugins

// tip: Run this command in your terminal to install the skill


name: golden-paths description: Use when designing standardized development workflows, paved roads, or opinionated defaults. Covers golden path patterns, template design, developer workflow optimization, and guardrails. allowed-tools: Read, Glob, Grep

Golden Paths

Patterns for designing standardized, opinionated development workflows that make the right way the easy way.

When to Use This Skill

  • Designing standardized developer workflows
  • Creating paved roads for common patterns
  • Building template-based service creation
  • Implementing guardrails with flexibility
  • Optimizing developer onboarding
  • Reducing cognitive load for developers

Golden Path Fundamentals

What is a Golden Path?

Golden Path Definition:
An opinionated, well-supported workflow that makes best practices
the path of least resistance while not blocking alternatives.

Key Characteristics:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    GOLDEN PATH                               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                              โ”‚
โ”‚  โœ“ Opinionated:  Clear decisions made for you               โ”‚
โ”‚  โœ“ Supported:    First-class documentation and tooling      โ”‚
โ”‚  โœ“ Optimized:    Fastest path to production                 โ”‚
โ”‚  โœ“ Maintained:   Kept up-to-date by platform team           โ”‚
โ”‚  โœ“ Escapable:    Can deviate when needed                    โ”‚
โ”‚                                                              โ”‚
โ”‚  "Make the right way the easy way"                          โ”‚
โ”‚                                                              โ”‚
โ”‚  Golden Path โ‰  The Only Path                                โ”‚
โ”‚  Golden Path = The Recommended Path                         โ”‚
โ”‚                                                              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

vs Paved Road vs Rails:
โ”œโ”€โ”€ Golden Path: Recommended workflow with alternatives
โ”œโ”€โ”€ Paved Road: Same concept, Spotify terminology
โ”œโ”€โ”€ Rails: More rigid, harder to deviate (often negative)

Golden Path vs Custom

Golden Path Benefits:

Developer Time:
โ”œโ”€โ”€ New service: 15 min (golden) vs 2 days (custom)
โ”œโ”€โ”€ Setup CI/CD: Automatic vs 4-8 hours
โ”œโ”€โ”€ Observability: Built-in vs manual integration
โ””โ”€โ”€ Security: Automatic vs checklist review

Platform Support:
โ”œโ”€โ”€ Golden path: Full support, rapid fixes
โ”œโ”€โ”€ Custom: Best-effort support, lower priority
โ”œโ”€โ”€ Hybrid: Support for platform components only

Example Journey:

Golden Path:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ 1. Choose template     โ†’ node-api-template                  โ”‚
โ”‚ 2. Answer questions    โ†’ name, team, database?             โ”‚
โ”‚ 3. Generate repo       โ†’ automatic                         โ”‚
โ”‚ 4. First deployment    โ†’ automatic via CI                  โ”‚
โ”‚ 5. Start coding        โ†’ focus on business logic           โ”‚
โ”‚                                                              โ”‚
โ”‚ Time: ~15 minutes                                           โ”‚
โ”‚ Result: Production-ready service                            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Custom Path:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ 1. Create repo         โ†’ manual setup                       โ”‚
โ”‚ 2. Choose framework    โ†’ research options                   โ”‚
โ”‚ 3. Setup build         โ†’ configure bundler/compiler         โ”‚
โ”‚ 4. Add observability   โ†’ integrate logging, metrics         โ”‚
โ”‚ 5. Security review     โ†’ checklist, manual fixes            โ”‚
โ”‚ 6. Setup CI/CD         โ†’ write pipeline config              โ”‚
โ”‚ 7. Deploy pipeline     โ†’ debug issues                       โ”‚
โ”‚ 8. Documentation       โ†’ write from scratch                 โ”‚
โ”‚                                                              โ”‚
โ”‚ Time: 2-5 days                                              โ”‚
โ”‚ Result: May miss best practices                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Designing Golden Paths

Identifying Candidates

Golden Path Selection Criteria:

High-Value Candidates:
โ”œโ”€โ”€ Frequent: Done by many teams regularly
โ”œโ”€โ”€ Complex: Easy to get wrong
โ”œโ”€โ”€ Critical: Security/compliance implications
โ”œโ”€โ”€ Costly: Takes significant time manually
โ””โ”€โ”€ Standardizable: Common pattern across teams

Assessment Matrix:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚               Frequency                                     โ”‚
โ”‚            Low          High                                โ”‚
โ”‚         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                      โ”‚
โ”‚  High   โ”‚ Custom      โ”‚ GOLDEN PATH โ”‚ โ† High Impact        โ”‚
โ”‚         โ”‚ Solution    โ”‚ PRIORITY    โ”‚                      โ”‚
โ”‚ Impact  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค                      โ”‚
โ”‚  Low    โ”‚ Ignore      โ”‚ Document/   โ”‚                      โ”‚
โ”‚         โ”‚             โ”‚ Automate    โ”‚                      โ”‚
โ”‚         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Common Golden Paths:
1. New service creation (by service type)
2. Database provisioning
3. CI/CD pipeline setup
4. Security scanning integration
5. Observability setup
6. Environment creation
7. API development workflow
8. Frontend application setup

Template Design Principles

Template Design:

1. Opinionated Defaults
   โ”œโ”€โ”€ Make decisions so developers don't have to
   โ”œโ”€โ”€ Choose proven technologies
   โ”œโ”€โ”€ Use sensible configurations
   โ””โ”€โ”€ Document why choices were made

2. Minimal Required Input
   โ”œโ”€โ”€ Service name
   โ”œโ”€โ”€ Team/owner
   โ”œโ”€โ”€ 1-3 key configuration choices
   โ””โ”€โ”€ Everything else has defaults

3. Complete Package
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚ Template Contents:                                       โ”‚
   โ”‚                                                          โ”‚
   โ”‚ Application Layer:                                       โ”‚
   โ”‚ โ”œโ”€โ”€ Application code skeleton                            โ”‚
   โ”‚ โ”œโ”€โ”€ Configuration management                             โ”‚
   โ”‚ โ”œโ”€โ”€ Health check endpoints                               โ”‚
   โ”‚ โ””โ”€โ”€ API documentation setup                              โ”‚
   โ”‚                                                          โ”‚
   โ”‚ Quality Layer:                                           โ”‚
   โ”‚ โ”œโ”€โ”€ Unit test framework                                  โ”‚
   โ”‚ โ”œโ”€โ”€ Integration test setup                               โ”‚
   โ”‚ โ”œโ”€โ”€ Linting and formatting                               โ”‚
   โ”‚ โ””โ”€โ”€ Pre-commit hooks                                     โ”‚
   โ”‚                                                          โ”‚
   โ”‚ Operations Layer:                                        โ”‚
   โ”‚ โ”œโ”€โ”€ Dockerfile                                           โ”‚
   โ”‚ โ”œโ”€โ”€ Kubernetes manifests                                 โ”‚
   โ”‚ โ”œโ”€โ”€ CI/CD pipeline                                       โ”‚
   โ”‚ โ””โ”€โ”€ Infrastructure as Code                               โ”‚
   โ”‚                                                          โ”‚
   โ”‚ Observability Layer:                                     โ”‚
   โ”‚ โ”œโ”€โ”€ Structured logging                                   โ”‚
   โ”‚ โ”œโ”€โ”€ Metrics instrumentation                              โ”‚
   โ”‚ โ”œโ”€โ”€ Distributed tracing                                  โ”‚
   โ”‚ โ””โ”€โ”€ Dashboard templates                                  โ”‚
   โ”‚                                                          โ”‚
   โ”‚ Documentation Layer:                                     โ”‚
   โ”‚ โ”œโ”€โ”€ README template                                      โ”‚
   โ”‚ โ”œโ”€โ”€ ADR templates                                        โ”‚
   โ”‚ โ”œโ”€โ”€ Runbook templates                                    โ”‚
   โ”‚ โ””โ”€โ”€ API specification                                    โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

4. Clear Extension Points
   โ”œโ”€โ”€ Where to add business logic
   โ”œโ”€โ”€ How to add new endpoints
   โ”œโ”€โ”€ How to integrate dependencies
   โ””โ”€โ”€ How to customize behavior

Template Architecture

Template Implementation Patterns:

1. Scaffolding/Generation (Backstage, Yeoman)
   Input โ†’ Template + Variables โ†’ Generated Repo

   Pros: Simple, full control
   Cons: Generated code diverges over time

2. Cookiecutter/Copier
   Template repo โ†’ Variable substitution โ†’ New repo

   Pros: Easy to maintain templates
   Cons: Post-generation updates hard

3. Base Image/Library Pattern
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚                Application Code                          โ”‚
   โ”‚                      โ”‚                                   โ”‚
   โ”‚                      โ–ผ                                   โ”‚
   โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
   โ”‚  โ”‚           Company Base Library                   โ”‚    โ”‚
   โ”‚  โ”‚  โ”œโ”€โ”€ Logging (preconfigured)                    โ”‚    โ”‚
   โ”‚  โ”‚  โ”œโ”€โ”€ Metrics (preconfigured)                    โ”‚    โ”‚
   โ”‚  โ”‚  โ”œโ”€โ”€ Tracing (preconfigured)                    โ”‚    โ”‚
   โ”‚  โ”‚  โ”œโ”€โ”€ HTTP client (with retry)                   โ”‚    โ”‚
   โ”‚  โ”‚  โ””โ”€โ”€ Health checks (standard)                   โ”‚    โ”‚
   โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
   โ”‚                      โ”‚                                   โ”‚
   โ”‚                      โ–ผ                                   โ”‚
   โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
   โ”‚  โ”‚           Company Base Image                     โ”‚    โ”‚
   โ”‚  โ”‚  โ”œโ”€โ”€ Runtime (Node, Go, .NET)                   โ”‚    โ”‚
   โ”‚  โ”‚  โ”œโ”€โ”€ Security patches                           โ”‚    โ”‚
   โ”‚  โ”‚  โ””โ”€โ”€ Standard tooling                           โ”‚    โ”‚
   โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

   Pros: Updates propagate automatically
   Cons: Requires versioning strategy

4. Mono-Repo with Generators
   Centralized templates โ†’ Generated into mono-repo

   Pros: Consistency, shared tooling
   Cons: Mono-repo complexity

Guardrails and Flexibility

Guardrail Design

Guardrails: Automatic enforcement of standards without blocking.

Types of Guardrails:

1. Preventive (Block before it happens)
   โ”œโ”€โ”€ Pre-commit hooks
   โ”œโ”€โ”€ PR checks
   โ”œโ”€โ”€ Template validation
   โ””โ”€โ”€ Infrastructure policies

2. Detective (Alert after it happens)
   โ”œโ”€โ”€ Compliance scans
   โ”œโ”€โ”€ Drift detection
   โ”œโ”€โ”€ Audit logs
   โ””โ”€โ”€ Security scanning

3. Corrective (Auto-fix issues)
   โ”œโ”€โ”€ Auto-formatting
   โ”œโ”€โ”€ Auto-remediation
   โ”œโ”€โ”€ Self-healing infrastructure
   โ””โ”€โ”€ Automated rollbacks

Guardrail Implementation:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 DEVELOPMENT LIFECYCLE                        โ”‚
โ”‚                                                              โ”‚
โ”‚  Code โ”€โ”€โ–บ Commit โ”€โ”€โ–บ PR โ”€โ”€โ–บ Merge โ”€โ”€โ–บ Deploy โ”€โ”€โ–บ Production โ”‚
โ”‚    โ”‚        โ”‚        โ”‚        โ”‚         โ”‚           โ”‚       โ”‚
โ”‚    โ–ผ        โ–ผ        โ–ผ        โ–ผ         โ–ผ           โ–ผ       โ”‚
โ”‚ [Lint]  [Pre-    [PR      [Build   [Deploy    [Runtime     โ”‚
โ”‚ [Format] commit]  checks]  gates]   policies]  monitoring] โ”‚
โ”‚                                                              โ”‚
โ”‚  Guardrails at each stage:                                  โ”‚
โ”‚  โ”œโ”€โ”€ IDE: Real-time feedback, auto-fix                      โ”‚
โ”‚  โ”œโ”€โ”€ Commit: Secrets scan, lint                             โ”‚
โ”‚  โ”œโ”€โ”€ PR: Tests, security scan, approval                     โ”‚
โ”‚  โ”œโ”€โ”€ Build: Vulnerability scan, compliance                  โ”‚
โ”‚  โ”œโ”€โ”€ Deploy: Canary, health checks                          โ”‚
โ”‚  โ””โ”€โ”€ Runtime: Anomaly detection, auto-scale                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Escape Hatches

Escape Hatches: How to deviate from golden path when needed.

Principles:
โ”œโ”€โ”€ Make deviation possible but intentional
โ”œโ”€โ”€ Require justification, not approval
โ”œโ”€โ”€ Don't punish teams for legitimate needs
โ””โ”€โ”€ Learn from deviations to improve paths

Escape Hatch Patterns:

1. Documented Exception
   # .platform/exceptions.yaml
   exceptions:
     - rule: must-use-company-base-image
       reason: "ML workload requires specific CUDA version"
       approved-by: platform-team
       expires: 2024-12-31
       review-issue: PLAT-1234

2. Tiered Support
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚ Tier 1: Golden Path                                      โ”‚
   โ”‚ - Full support                                           โ”‚
   โ”‚ - Automatic updates                                      โ”‚
   โ”‚ - Priority bug fixes                                     โ”‚
   โ”‚                                                          โ”‚
   โ”‚ Tier 2: Supported Deviation                              โ”‚
   โ”‚ - Documented exception                                   โ”‚
   โ”‚ - Best-effort support                                    โ”‚
   โ”‚ - Manual updates may be needed                           โ”‚
   โ”‚                                                          โ”‚
   โ”‚ Tier 3: Custom                                           โ”‚
   โ”‚ - Self-supported                                         โ”‚
   โ”‚ - No guarantees                                          โ”‚
   โ”‚ - Must meet minimum security standards                   โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3. Override Mechanism
   # pipeline.yaml
   lint:
     enabled: true
     override: true  # Skip for this repo
     override-reason: "Legacy code, lint fix scheduled for Q2"

Common Golden Paths

Service Creation Path

Service Creation Golden Path:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Step 1: Select Template                                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                              โ”‚
โ”‚  Available Templates:                                        โ”‚
โ”‚  โ—‹ REST API (Node.js)     - Standard HTTP API               โ”‚
โ”‚  โ—‹ REST API (Go)          - High-performance API            โ”‚
โ”‚  โ—‹ REST API (.NET)        - Enterprise API                  โ”‚
โ”‚  โ— GraphQL Service        - Flexible API layer              โ”‚
โ”‚  โ—‹ Event Consumer         - Kafka/message processing        โ”‚
โ”‚  โ—‹ Scheduled Job          - Batch/cron workloads            โ”‚
โ”‚                                                              โ”‚
โ”‚  [Continue with GraphQL Service]                            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Step 2: Configure Service                                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                              โ”‚
โ”‚  Service Name: _________ (kebab-case, e.g., user-service)   โ”‚
โ”‚  Owner Team:   [โ–ผ Select team ]                             โ”‚
โ”‚  Description:  _________________________________________     โ”‚
โ”‚                                                              โ”‚
โ”‚  Optional Features:                                          โ”‚
โ”‚  โ˜‘ Database (PostgreSQL)                                    โ”‚
โ”‚  โ˜ Cache (Redis)                                            โ”‚
โ”‚  โ˜‘ Message Queue (Kafka consumer)                           โ”‚
โ”‚  โ˜ External API Client                                      โ”‚
โ”‚                                                              โ”‚
โ”‚  [Create Service]                                           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Step 3: Automatic Setup (60 seconds)                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                              โ”‚
โ”‚  โœ“ Repository created         github.com/org/user-service   โ”‚
โ”‚  โœ“ CI/CD pipeline configured  Actions workflow created      โ”‚
โ”‚  โœ“ Dev environment ready      user-service.dev.internal     โ”‚
โ”‚  โœ“ Database provisioned       PostgreSQL on RDS             โ”‚
โ”‚  โœ“ Secrets configured         Vault paths created           โ”‚
โ”‚  โœ“ Monitoring setup           Datadog dashboards created    โ”‚
โ”‚  โœ“ Registered in catalog      Backstage entry created       โ”‚
โ”‚                                                              โ”‚
โ”‚  [Open Repository] [View in Catalog] [Start Coding]         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Deployment Path

Deployment Golden Path:

Developer Workflow:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                                                              โ”‚
โ”‚  1. Developer pushes to feature branch                      โ”‚
โ”‚     โ””โ”€โ”€ Automatic: lint, test, build, security scan         โ”‚
โ”‚                                                              โ”‚
โ”‚  2. Developer opens PR                                      โ”‚
โ”‚     โ””โ”€โ”€ Automatic: preview environment, E2E tests           โ”‚
โ”‚                                                              โ”‚
โ”‚  3. PR approved and merged                                  โ”‚
โ”‚     โ””โ”€โ”€ Automatic: deploy to staging                        โ”‚
โ”‚                                                              โ”‚
โ”‚  4. Staging validation (automated + manual)                 โ”‚
โ”‚     โ””โ”€โ”€ Automatic: smoke tests, synthetic monitoring        โ”‚
โ”‚                                                              โ”‚
โ”‚  5. Production deployment                                   โ”‚
โ”‚     โ””โ”€โ”€ Automatic: canary โ†’ gradual rollout                 โ”‚
โ”‚                                                              โ”‚
โ”‚  No manual steps required for standard deployments          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Pipeline Configuration:
# Comes pre-configured in template
# Developers only modify if needed

deploy:
  staging:
    trigger: merge-to-main
    strategy: rolling
    tests: [smoke, integration]

  production:
    trigger: staging-success
    strategy: canary
    canary-percentage: 5
    canary-duration: 15m
    rollback: automatic

Adoption Strategy

Rolling Out Golden Paths

Adoption Phases:

Phase 1: Pilot (1-2 teams, 1-2 months)
โ”œโ”€โ”€ Partner with friendly teams
โ”œโ”€โ”€ Gather intensive feedback
โ”œโ”€โ”€ Iterate rapidly
โ”œโ”€โ”€ Build success stories
โ””โ”€โ”€ Document learnings

Phase 2: Early Adopters (5-10 teams, 2-3 months)
โ”œโ”€โ”€ Expand to interested teams
โ”œโ”€โ”€ Refine based on feedback
โ”œโ”€โ”€ Build champions network
โ”œโ”€โ”€ Create training materials
โ””โ”€โ”€ Measure adoption metrics

Phase 3: Early Majority (30-50% teams, 3-6 months)
โ”œโ”€โ”€ Marketing and communication
โ”œโ”€โ”€ Training sessions
โ”œโ”€โ”€ Self-service documentation
โ”œโ”€โ”€ Deprecate old paths
โ””โ”€โ”€ Track DORA metrics

Phase 4: Late Majority (70-90% teams, 6-12 months)
โ”œโ”€โ”€ Mandate for new services
โ”œโ”€โ”€ Migration support for existing
โ”œโ”€โ”€ Advanced features
โ”œโ”€โ”€ Refinement and optimization
โ””โ”€โ”€ Continuous improvement

Adoption Tactics:
โ”œโ”€โ”€ Make golden path faster than alternatives
โ”œโ”€โ”€ Provide migration tooling
โ”œโ”€โ”€ Celebrate early adopters
โ”œโ”€โ”€ Address blockers quickly
โ”œโ”€โ”€ Don't force premature adoption
โ””โ”€โ”€ Listen to resistors (they find real issues)

Measuring Success

Golden Path Metrics:

Adoption Metrics:
โ”œโ”€โ”€ % new services using templates
โ”œโ”€โ”€ % teams with at least one golden path service
โ”œโ”€โ”€ Template usage by type
โ”œโ”€โ”€ Deviation rate (why teams don't use)
โ””โ”€โ”€ Migration rate (legacy to golden path)

Efficiency Metrics:
โ”œโ”€โ”€ Time to first deployment (new service)
โ”œโ”€โ”€ Time to production change
โ”œโ”€โ”€ PR cycle time
โ”œโ”€โ”€ Incident resolution time
โ””โ”€โ”€ Developer time saved

Quality Metrics:
โ”œโ”€โ”€ Deployment success rate
โ”œโ”€โ”€ Security scan pass rate
โ”œโ”€โ”€ Change failure rate
โ”œโ”€โ”€ Incident rate (golden vs custom)
โ””โ”€โ”€ Compliance audit findings

Satisfaction Metrics:
โ”œโ”€โ”€ Developer NPS for platform
โ”œโ”€โ”€ Template satisfaction surveys
โ”œโ”€โ”€ Support ticket volume
โ”œโ”€โ”€ Documentation effectiveness
โ””โ”€โ”€ Onboarding experience rating

Anti-Patterns

Golden Path Anti-Patterns:

1. "One Golden Path for All"
   โŒ Same template for microservices and ML workloads
   โœ“ Multiple paths for different use cases

2. "Rails, Not Paths"
   โŒ Making deviation impossible or punished
   โœ“ Deviation possible with justification

3. "Technical Purity Over Practicality"
   โŒ Choosing trendy tech that teams struggle with
   โœ“ Use tech teams can actually use

4. "Set and Forget"
   โŒ Creating path once and never updating
   โœ“ Continuous improvement based on feedback

5. "Mandate Without Value"
   โŒ Forcing adoption before path is good
   โœ“ Make path so good teams want to use it

6. "Complexity Hiding"
   โŒ Hiding all complexity, no learning opportunity
   โœ“ Progressive disclosure of complexity

7. "No Escape Hatch"
   โŒ Blocking legitimate deviations
   โœ“ Clear process for exceptions

Best Practices

Golden Path Best Practices:

1. Start with Pain Points
   โ”œโ”€โ”€ Interview developers about friction
   โ”œโ”€โ”€ Measure current time-to-production
   โ”œโ”€โ”€ Identify most common tasks
   โ””โ”€โ”€ Focus on highest-impact paths first

2. Make Right Way Easy
   โ”œโ”€โ”€ Golden path should be faster than alternatives
   โ”œโ”€โ”€ Defaults should be secure and compliant
   โ”œโ”€โ”€ Documentation integrated into workflow
   โ””โ”€โ”€ Errors should guide to solutions

3. Iterate Based on Feedback
   โ”œโ”€โ”€ Regular user research
   โ”œโ”€โ”€ Fast iteration cycles
   โ”œโ”€โ”€ A/B test improvements
   โ””โ”€โ”€ Deprecate gracefully

4. Balance Opinionation and Flexibility
   โ”œโ”€โ”€ Strong defaults with clear rationale
   โ”œโ”€โ”€ Document why choices were made
   โ”œโ”€โ”€ Allow overrides with justification
   โ””โ”€โ”€ Learn from deviations

5. Invest in Documentation
   โ”œโ”€โ”€ Getting started guides
   โ”œโ”€โ”€ Decision explanations
   โ”œโ”€โ”€ Troubleshooting guides
   โ””โ”€โ”€ Migration guides

6. Build Community
   โ”œโ”€โ”€ Champions in each team
   โ”œโ”€โ”€ Regular office hours
   โ”œโ”€โ”€ Contribution guidelines
   โ””โ”€โ”€ Celebrate successes

Related Skills

  • internal-developer-platform - Platform engineering overview
  • self-service-infrastructure - Infrastructure provisioning patterns
  • design-interview-methodology - Interview preparation
  • quality-attributes-taxonomy - Understanding quality requirements