@trohde/earos 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +156 -0
  2. package/assets/init/.agents/skills/earos-artifact-gen/SKILL.md +106 -0
  3. package/assets/init/.agents/skills/earos-artifact-gen/references/interview-guide.md +313 -0
  4. package/assets/init/.agents/skills/earos-artifact-gen/references/output-guide.md +367 -0
  5. package/assets/init/.agents/skills/earos-assess/SKILL.md +212 -0
  6. package/assets/init/.agents/skills/earos-assess/references/calibration-benchmarks.md +160 -0
  7. package/assets/init/.agents/skills/earos-assess/references/output-templates.md +311 -0
  8. package/assets/init/.agents/skills/earos-assess/references/scoring-protocol.md +281 -0
  9. package/assets/init/.agents/skills/earos-calibrate/SKILL.md +153 -0
  10. package/assets/init/.agents/skills/earos-calibrate/references/agreement-metrics.md +188 -0
  11. package/assets/init/.agents/skills/earos-calibrate/references/calibration-protocol.md +263 -0
  12. package/assets/init/.agents/skills/earos-create/SKILL.md +257 -0
  13. package/assets/init/.agents/skills/earos-create/references/criterion-writing-guide.md +268 -0
  14. package/assets/init/.agents/skills/earos-create/references/dependency-rules.md +193 -0
  15. package/assets/init/.agents/skills/earos-create/references/rubric-interview-guide.md +123 -0
  16. package/assets/init/.agents/skills/earos-create/references/validation-checklist.md +238 -0
  17. package/assets/init/.agents/skills/earos-profile-author/SKILL.md +251 -0
  18. package/assets/init/.agents/skills/earos-profile-author/references/criterion-writing-guide.md +280 -0
  19. package/assets/init/.agents/skills/earos-profile-author/references/design-methods.md +158 -0
  20. package/assets/init/.agents/skills/earos-profile-author/references/profile-checklist.md +173 -0
  21. package/assets/init/.agents/skills/earos-remediate/SKILL.md +118 -0
  22. package/assets/init/.agents/skills/earos-remediate/references/output-template.md +199 -0
  23. package/assets/init/.agents/skills/earos-remediate/references/remediation-patterns.md +330 -0
  24. package/assets/init/.agents/skills/earos-report/SKILL.md +85 -0
  25. package/assets/init/.agents/skills/earos-report/references/portfolio-template.md +181 -0
  26. package/assets/init/.agents/skills/earos-report/references/single-artifact-template.md +168 -0
  27. package/assets/init/.agents/skills/earos-review/SKILL.md +130 -0
  28. package/assets/init/.agents/skills/earos-review/references/challenge-patterns.md +163 -0
  29. package/assets/init/.agents/skills/earos-review/references/output-template.md +180 -0
  30. package/assets/init/.agents/skills/earos-template-fill/SKILL.md +177 -0
  31. package/assets/init/.agents/skills/earos-template-fill/references/evidence-writing-guide.md +186 -0
  32. package/assets/init/.agents/skills/earos-template-fill/references/section-rubric-mapping.md +200 -0
  33. package/assets/init/.agents/skills/earos-validate/SKILL.md +113 -0
  34. package/assets/init/.agents/skills/earos-validate/references/fix-patterns.md +281 -0
  35. package/assets/init/.agents/skills/earos-validate/references/validation-checks.md +287 -0
  36. package/assets/init/.claude/CLAUDE.md +4 -0
  37. package/assets/init/AGENTS.md +293 -0
  38. package/assets/init/CLAUDE.md +635 -0
  39. package/assets/init/README.md +507 -0
  40. package/assets/init/calibration/gold-set/.gitkeep +0 -0
  41. package/assets/init/calibration/results/.gitkeep +0 -0
  42. package/assets/init/core/core-meta-rubric.yaml +643 -0
  43. package/assets/init/docs/consistency-report.md +325 -0
  44. package/assets/init/docs/getting-started.md +194 -0
  45. package/assets/init/docs/profile-authoring-guide.md +51 -0
  46. package/assets/init/docs/terminology.md +126 -0
  47. package/assets/init/earos.manifest.yaml +104 -0
  48. package/assets/init/evaluations/.gitkeep +0 -0
  49. package/assets/init/examples/aws-event-driven-order-processing/artifact.yaml +2056 -0
  50. package/assets/init/examples/aws-event-driven-order-processing/evaluation.yaml +973 -0
  51. package/assets/init/examples/aws-event-driven-order-processing/report.md +244 -0
  52. package/assets/init/examples/example-solution-architecture.evaluation.yaml +136 -0
  53. package/assets/init/examples/multi-cloud-data-analytics/artifact.yaml +715 -0
  54. package/assets/init/overlays/data-governance.yaml +94 -0
  55. package/assets/init/overlays/regulatory.yaml +154 -0
  56. package/assets/init/overlays/security.yaml +92 -0
  57. package/assets/init/profiles/adr.yaml +225 -0
  58. package/assets/init/profiles/capability-map.yaml +223 -0
  59. package/assets/init/profiles/reference-architecture.yaml +426 -0
  60. package/assets/init/profiles/roadmap.yaml +205 -0
  61. package/assets/init/profiles/solution-architecture.yaml +227 -0
  62. package/assets/init/research/architecture-assessment-rubrics-research.docx +0 -0
  63. package/assets/init/research/architecture-assessment-rubrics-research.md +566 -0
  64. package/assets/init/research/reference-architecture-research.md +751 -0
  65. package/assets/init/standard/EAROS.md +1426 -0
  66. package/assets/init/standard/schemas/artifact.schema.json +1295 -0
  67. package/assets/init/standard/schemas/artifact.uischema.json +65 -0
  68. package/assets/init/standard/schemas/evaluation.schema.json +284 -0
  69. package/assets/init/standard/schemas/rubric.schema.json +383 -0
  70. package/assets/init/templates/evaluation-record.template.yaml +58 -0
  71. package/assets/init/templates/new-profile.template.yaml +65 -0
  72. package/bin.js +188 -0
  73. package/dist/assets/_basePickBy-BVu6YmSW.js +1 -0
  74. package/dist/assets/_baseUniq-CWRzQDz_.js +1 -0
  75. package/dist/assets/arc-CyDBhtDM.js +1 -0
  76. package/dist/assets/architectureDiagram-2XIMDMQ5-BH6O4dvN.js +36 -0
  77. package/dist/assets/blockDiagram-WCTKOSBZ-2xmwdjpg.js +132 -0
  78. package/dist/assets/c4Diagram-IC4MRINW-BNmPRFJF.js +10 -0
  79. package/dist/assets/channel-CiySTNoJ.js +1 -0
  80. package/dist/assets/chunk-4BX2VUAB-DGQTvirp.js +1 -0
  81. package/dist/assets/chunk-55IACEB6-DNMAQAC_.js +1 -0
  82. package/dist/assets/chunk-FMBD7UC4-BJbVTQ5o.js +15 -0
  83. package/dist/assets/chunk-JSJVCQXG-BCxUL74A.js +1 -0
  84. package/dist/assets/chunk-KX2RTZJC-H7wWZOfz.js +1 -0
  85. package/dist/assets/chunk-NQ4KR5QH-BK4RlTQF.js +220 -0
  86. package/dist/assets/chunk-QZHKN3VN-0chxDV5g.js +1 -0
  87. package/dist/assets/chunk-WL4C6EOR-DexfQ-AV.js +189 -0
  88. package/dist/assets/classDiagram-VBA2DB6C-D7luWJQn.js +1 -0
  89. package/dist/assets/classDiagram-v2-RAHNMMFH-D7luWJQn.js +1 -0
  90. package/dist/assets/clone-ylgRbd3D.js +1 -0
  91. package/dist/assets/cose-bilkent-S5V4N54A-DS2IOCfZ.js +1 -0
  92. package/dist/assets/cytoscape.esm-CyJtwmzi.js +331 -0
  93. package/dist/assets/dagre-KLK3FWXG-BbSoTTa3.js +4 -0
  94. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  95. package/dist/assets/diagram-E7M64L7V-C9TvYgv0.js +24 -0
  96. package/dist/assets/diagram-IFDJBPK2-DowUMWrg.js +43 -0
  97. package/dist/assets/diagram-P4PSJMXO-BL6nrnQF.js +24 -0
  98. package/dist/assets/erDiagram-INFDFZHY-rXPRl8VM.js +70 -0
  99. package/dist/assets/flowDiagram-PKNHOUZH-DBRM99-W.js +162 -0
  100. package/dist/assets/ganttDiagram-A5KZAMGK-INcWFsBT.js +292 -0
  101. package/dist/assets/gitGraphDiagram-K3NZZRJ6-DMwpfE91.js +65 -0
  102. package/dist/assets/graph-DLQn37b-.js +1 -0
  103. package/dist/assets/index-BFFITMT8.js +650 -0
  104. package/dist/assets/index-H7f6VTz1.css +1 -0
  105. package/dist/assets/infoDiagram-LFFYTUFH-B0f4TWRM.js +2 -0
  106. package/dist/assets/init-Gi6I4Gst.js +1 -0
  107. package/dist/assets/ishikawaDiagram-PHBUUO56-CsU6XimZ.js +70 -0
  108. package/dist/assets/journeyDiagram-4ABVD52K-CQ7ibNib.js +139 -0
  109. package/dist/assets/kanban-definition-K7BYSVSG-DzEN7THt.js +89 -0
  110. package/dist/assets/katex-B1X10hvy.js +261 -0
  111. package/dist/assets/layout-C0dvb42R.js +1 -0
  112. package/dist/assets/linear-j4a8mGj7.js +1 -0
  113. package/dist/assets/mindmap-definition-YRQLILUH-DP8iEuCf.js +68 -0
  114. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  115. package/dist/assets/pieDiagram-SKSYHLDU-BpIAXgAm.js +30 -0
  116. package/dist/assets/quadrantDiagram-337W2JSQ-DrpXn5Eg.js +7 -0
  117. package/dist/assets/requirementDiagram-Z7DCOOCP-Bg7EwHlG.js +73 -0
  118. package/dist/assets/sankeyDiagram-WA2Y5GQK-BWagRs1F.js +10 -0
  119. package/dist/assets/sequenceDiagram-2WXFIKYE-q5jwhivG.js +145 -0
  120. package/dist/assets/stateDiagram-RAJIS63D-B_J9pE-2.js +1 -0
  121. package/dist/assets/stateDiagram-v2-FVOUBMTO-Q_1GcybB.js +1 -0
  122. package/dist/assets/timeline-definition-YZTLITO2-dv0jgQ0z.js +61 -0
  123. package/dist/assets/treemap-KZPCXAKY-Dt1dkIE7.js +162 -0
  124. package/dist/assets/vennDiagram-LZ73GAT5-BdO5RgRZ.js +34 -0
  125. package/dist/assets/xychartDiagram-JWTSCODW-CpDVe-8v.js +7 -0
  126. package/dist/index.html +23 -0
  127. package/export-docx.js +1583 -0
  128. package/init.js +353 -0
  129. package/manifest-cli.mjs +207 -0
  130. package/package.json +83 -0
  131. package/schemas/artifact.schema.json +1295 -0
  132. package/schemas/artifact.uischema.json +65 -0
  133. package/schemas/evaluation.schema.json +284 -0
  134. package/schemas/rubric.schema.json +383 -0
  135. package/serve.js +238 -0
@@ -0,0 +1,751 @@
1
+ # Reference Architecture Best Practices: Blueprints, Golden Paths, and Quality Frameworks
2
+
3
+ *Deep research compiled March 2026*
4
+
5
+ ---
6
+
7
+ ## 1. What Makes a Good Reference Architecture
8
+
9
+ ### 1.1 Definition and Purpose
10
+
11
+ A reference architecture is a standardised, reusable blueprint that guides the design and implementation of system architectures within a specific domain. In TOGAF's terminology, it is "a generic architecture that identifies the normal outlines of a system and provides the components, relationships, principles, and architectural guidelines" for a class of solutions. Unlike a solution architecture (which is tailored to one project), a reference architecture is meant to be broadly applicable — it captures proven patterns so that teams don't reinvent the wheel.
12
+
13
+ Conexiam identifies two fundamental types of reference architectures: those that **expose the structure** of a system (component models, layered views) and those that **show how a system works** (data flows, interaction patterns, runtime behaviours). The best reference architectures include both.
14
+
15
+ ### 1.2 TOGAF and the Enterprise Continuum
16
+
17
+ TOGAF positions reference architectures along an **Enterprise Continuum** — a spectrum from generic to specific:
18
+
19
+ | Level | Description | Example |
20
+ |-------|-------------|---------|
21
+ | **Foundation** | Universal IT principles and building blocks | TOGAF Technical Reference Model (TRM) |
22
+ | **Common Systems** | Cross-industry patterns | Service-oriented architecture, event-driven architecture |
23
+ | **Industry** | Domain-specific blueprints | BIAN (banking), HL7 FHIR (healthcare), ACORD (insurance) |
24
+ | **Organisation-Specific** | Tailored to one enterprise | "Our microservices reference architecture on AWS" |
25
+
26
+ The further right on the continuum, the more opinionated and prescriptive the architecture becomes. A good reference architecture clearly states **where it sits** on this continuum so consumers understand how much adaptation is expected.
27
+
28
+ TOGAF also provides two built-in reference models: the **Technical Reference Model (TRM)**, which describes a fundamental layered architecture, and the **Integrated Information Infrastructure Reference Model (III-RM)**, focused on information flow. Both serve as starting points that organisations extend.
29
+
30
+ ### 1.3 Structure and Content: Lessons from the Hyperscalers
31
+
32
+ The major cloud providers have converged on a remarkably consistent structure for their reference architectures. Examining AWS, Azure, and Google Cloud reveals a common anatomy:
33
+
34
+ #### AWS Reference Architectures
35
+
36
+ AWS publishes reference architecture diagrams through the **AWS Architecture Center**, structured around:
37
+
38
+ - **Architecture diagram** with numbered data-flow annotations
39
+ - **Component descriptions** — each AWS service's role explained
40
+ - **Well-Architected alignment** — mapping to the six pillars (operational excellence, security, reliability, performance efficiency, cost optimisation, sustainability)
41
+ - **Deployment guidance** — often including CloudFormation or CDK templates
42
+ - **Cost considerations**
43
+
44
+ AWS also provides **AWS Solutions Constructs** — an open-source CDK library of multi-service patterns that implement Well-Architected best practices with ready-to-deploy code. These represent reference architectures at the infrastructure-as-code level.
45
+
46
+ #### Azure Architecture Center
47
+
48
+ Microsoft's Azure Architecture Center structures reference architectures with:
49
+
50
+ - **Scenario overview** — business context, use cases, and intended audience
51
+ - **Architecture diagram** — visual showing component interactions
52
+ - **Dataflow description** — numbered walkthrough of how data moves through the system
53
+ - **Components** — each Azure service linked to its Well-Architected service guide
54
+ - **Well-Architected Framework considerations** — analysis across the five pillars (reliability, security, cost optimisation, operational excellence, performance efficiency)
55
+ - **Alternatives** — discussion of technology choices and trade-offs
56
+ - **Deploy this scenario** — ARM templates or Bicep files on GitHub
57
+
58
+ #### Google Cloud Architecture Center
59
+
60
+ Google Cloud's approach emphasises:
61
+
62
+ - **Architecture framework** — organised into pillars (security, reliability, performance, cost, operations, sustainability) plus cross-pillar perspectives
63
+ - **Simplicity** — explicit principle that if your architecture is too complex to understand, it will be difficult to implement
64
+ - **Documentation emphasis** — Google specifically calls out that lack of documentation is a major obstacle and that a "properly documented cloud architecture establishes common language and standards"
65
+ - **Decoupling** — separating components so they can operate independently
66
+ - **Industry perspectives** — e.g. a dedicated Financial Services Industry (FSI) perspective aligned to each pillar
67
+
68
+ ### 1.4 Audience and Level of Detail
69
+
70
+ A good reference architecture serves multiple audiences simultaneously and should be layered accordingly:
71
+
72
+ | Audience | Needs | Detail Level |
73
+ |----------|-------|-------------|
74
+ | **Executive / Business** | Why this pattern? What value? | High-level context diagram, business benefits, cost model |
75
+ | **Solution Architect** | How to compose the solution | Component model, integration patterns, decision points |
76
+ | **Developer** | How to implement | API contracts, code samples, deployment templates |
77
+ | **Operations / SRE** | How to run it | Monitoring, scaling policies, runbooks, SLOs |
78
+ | **Security / Compliance** | How it's protected | Threat model, control mapping, compliance evidence |
79
+
80
+ The key insight from all three hyperscalers: **the diagram is necessary but not sufficient**. Every reference architecture needs narrative explanation of data flows, explicit quality-attribute considerations, and actionable deployment artefacts.
81
+
82
+ ---
83
+
84
+ ## 2. Golden Paths and Paved Roads
85
+
86
+ ### 2.1 Origin: Spotify's Golden Path
87
+
88
+ The concept of the **Golden Path** was popularised by Spotify Engineering in 2020 to address a specific problem: as the company grew, autonomous teams led to ecosystem fragmentation. Developers resorted to what Spotify called "rumour-driven development" — the only way to figure out how to do something was to ask a colleague who might know.
89
+
90
+ Spotify's definition: a Golden Path is the **"opinionated and supported path to build something"** — for example, build a backend service, put up a website, or create a data pipeline.
91
+
92
+ Key design principles:
93
+
94
+ - **Opinionated but not mandatory**: The path represents the organisation's recommended way of doing things. Teams can deviate, but they lose platform support when they do.
95
+ - **Convenience over restriction**: The goal is to make the right thing the easy thing, not to enforce compliance through gates.
96
+ - **Full lifecycle coverage**: A golden path covers from project creation through CI/CD, observability, and production operations.
97
+ - **Dramatically reduced setup time**: Spotify reported reducing service setup time from **14 days to under 5 minutes**.
98
+
99
+ ### 2.2 Related Concepts
100
+
101
+ The golden path concept has spawned related ideas:
102
+
103
+ - **Paved Road** (Netflix's term): Similar concept — a well-maintained, well-lit highway through the technology landscape. Netflix emphasises that the paved road includes automated security scanning, standardised observability, and pre-configured CI/CD.
104
+ - **Silver Path**: Spotify's term for a secondary supported path — not the primary recommendation, but still maintained and supported.
105
+ - **Guardrails vs. Gates**: Golden paths favour guardrails (guide developers towards good practices) over gates (block developers until they comply). If you stay on the path, security and observability come "for free."
106
+
107
+ ### 2.3 Backstage and Software Templates
108
+
109
+ Spotify's internal developer portal, **Backstage** (now a CNCF project), is the primary mechanism for delivering golden paths. As of mid-2025, Backstage has become "the gravitational center of the IDP conversation."
110
+
111
+ **Backstage Software Templates (Scaffolder)** operationalise golden paths:
112
+
113
+ 1. A platform team defines a template (e.g. "Create a Java microservice")
114
+ 2. The template encodes organisational standards: preferred language/framework, CI/CD pipeline, observability setup, security scanning
115
+ 3. A developer selects the template, fills in a few form fields
116
+ 4. Backstage creates a new repository with the golden-path configuration, with the first build already running through CI/CD
117
+
118
+ The templates are stored as YAML definitions that can be version-controlled, reviewed, and evolved alongside the platform.
119
+
120
+ ### 2.4 Platform Engineering Context
121
+
122
+ Golden paths are a core concept within **platform engineering** — the practice of designing, building, and maintaining self-service capabilities that enable developers to deliver software faster with reduced cognitive load.
123
+
124
+ ThoughtWorks describes the golden path philosophy as: "If you follow and use these tools, we will give you our best support, so you will have a good experience. We're using these tools because these are the ones we recommend, and if you get stuck, we'll help you because we know exactly how to unblock you."
125
+
126
+ Key platform engineering patterns for golden paths:
127
+
128
+ - **Internal Developer Platform (IDP)**: The infrastructure layer that hosts and delivers golden paths
129
+ - **Self-service provisioning**: Developers can create environments, deploy services, and access tools without tickets
130
+ - **Production readiness scoring**: Tools like OpsLevel provide maturity dashboards that measure how closely services follow golden paths
131
+ - **Cognitive load reduction**: The primary metric — how much mental effort is removed from the developer's workflow
132
+
133
+ ### 2.5 Design Principles for Effective Golden Paths
134
+
135
+ Drawing from Red Hat, Spotify, and ThoughtWorks guidance, effective golden paths share these characteristics:
136
+
137
+ 1. **Start with the most painful developer journey** — identify where teams waste the most time
138
+ 2. **Cover the full lifecycle** — from "I need a new service" to "it's running in production with monitoring"
139
+ 3. **Make defaults excellent** — logging, security, observability, error handling should be pre-configured
140
+ 4. **Keep the escape hatch** — experienced engineers must be able to go "off-road" for specific needs
141
+ 5. **Measure adoption, not enforcement** — track what percentage of teams voluntarily use the path
142
+ 6. **Iterate based on feedback** — treat golden paths as products with their own roadmap
143
+ 7. **Make the path visible** — use a developer portal (Backstage, Port, OpsLevel) to showcase available paths
144
+
145
+ ---
146
+
147
+ ## 3. Reference Architecture Templates and Structures
148
+
149
+ ### 3.1 The arc42 Template
150
+
151
+ The **arc42** template, created by Gernot Starke and Peter Hruschka, provides a 12-section framework for software architecture documentation. It is deliberately pragmatic — every section is optional, and teams choose what's relevant.
152
+
153
+ #### The 12 Sections
154
+
155
+ | # | Section | Purpose |
156
+ |---|---------|---------|
157
+ | 1 | **Introduction and Goals** | Functional requirements summary, driving forces, quality goals, stakeholder expectations |
158
+ | 2 | **Constraints** | Technical, organisational, and regulatory constraints |
159
+ | 3 | **Context and Scope** | System boundary, external systems, interfaces — the "big picture" |
160
+ | 4 | **Solution Strategy** | Core architectural decisions, technology choices, key patterns |
161
+ | 5 | **Building Block View** | Static decomposition — modules, components, layers (hierarchical) |
162
+ | 6 | **Runtime View** | Dynamic behaviour — important scenarios, sequences, interactions |
163
+ | 7 | **Deployment View** | Infrastructure, hardware, environments, deployment topology |
164
+ | 8 | **Crosscutting Concepts** | Technical topics that span multiple building blocks (security, logging, error handling, persistence) |
165
+ | 9 | **Architectural Decisions** | Key decisions with rationale (ADRs) |
166
+ | 10 | **Quality Requirements** | Quality tree, quality scenarios, measurable targets |
167
+ | 11 | **Risks and Technical Debt** | Known problems, risks, and their mitigations |
168
+ | 12 | **Glossary** | Domain terms, ubiquitous language |
169
+
170
+ Arc42's strength is its **technology-agnostic** structure — it works equally well for a microservices system, an embedded system, or a data platform.
171
+
172
+ ### 3.2 The C4 Model
173
+
174
+ The **C4 model** (created by Simon Brown) provides an "abstraction-first" approach to diagramming software architecture. It uses four levels of zoom:
175
+
176
+ | Level | Name | Shows | Audience |
177
+ |-------|------|-------|----------|
178
+ | 1 | **System Context** | The system as a box, surrounded by users and external systems | Everyone |
179
+ | 2 | **Container** | Major runtime units (applications, databases, message queues) | Architects, developers |
180
+ | 3 | **Component** | Components within a container | Developers |
181
+ | 4 | **Code** | Class/module level (usually auto-generated) | Developers |
182
+
183
+ Plus supplementary diagrams: **Dynamic** (runtime interactions), **Deployment** (infrastructure mapping).
184
+
185
+ ### 3.3 Combining arc42 and C4
186
+
187
+ Arc42 and C4 complement each other naturally:
188
+
189
+ | C4 Diagram | Maps to arc42 Section |
190
+ |------------|----------------------|
191
+ | System Context | Section 3: Context and Scope |
192
+ | Container | Section 5: Building Block View (Level 1) |
193
+ | Component | Section 5: Building Block View (Level 2+) |
194
+ | Dynamic | Section 6: Runtime View |
195
+ | Deployment | Section 7: Deployment View |
196
+
197
+ This combination provides both the **structure** (arc42) and the **visual language** (C4) needed for comprehensive documentation.
198
+
199
+ ### 3.4 Azure Architecture Center Structure
200
+
201
+ Microsoft's reference architectures follow a consistent template:
202
+
203
+ 1. **Architecture overview** — one-paragraph summary
204
+ 2. **Architecture diagram** — annotated visual
205
+ 3. **Dataflow** — numbered step-by-step walkthrough
206
+ 4. **Components** — list of services with links to documentation
207
+ 5. **Scenario details** — business context, use cases
208
+ 6. **Considerations** — organised by Well-Architected pillars:
209
+ - Reliability
210
+ - Security
211
+ - Cost optimisation
212
+ - Operational excellence
213
+ - Performance efficiency
214
+ 7. **Deploy this scenario** — ARM/Bicep templates
215
+ 8. **Contributors** — authors and reviewers
216
+
217
+ ### 3.5 AWS Reference Architecture Structure
218
+
219
+ AWS reference architectures typically include:
220
+
221
+ 1. **Title and one-line description**
222
+ 2. **Architecture diagram** with numbered data flows
223
+ 3. **Service descriptions** — role of each AWS service
224
+ 4. **How it works** — step-by-step data flow narrative
225
+ 5. **Well-Architected considerations** — mapped to six pillars
226
+ 6. **Implementation** — CDK constructs, CloudFormation templates, or Solution Constructs
227
+ 7. **Cost estimate** — using AWS Pricing Calculator
228
+ 8. **Related resources** — links to documentation, workshops, blog posts
229
+
230
+ ### 3.6 Proposed Unified Template for Reference Architectures
231
+
232
+ Synthesising across all frameworks, a comprehensive reference architecture should include:
233
+
234
+ ```
235
+ 1. OVERVIEW
236
+ 1.1 Purpose and scope
237
+ 1.2 Target audience
238
+ 1.3 Position on the enterprise continuum (foundation / common / industry / org-specific)
239
+ 1.4 Relationship to other reference architectures
240
+
241
+ 2. BUSINESS CONTEXT
242
+ 2.1 Business drivers and goals
243
+ 2.2 Use cases and scenarios
244
+ 2.3 Key stakeholders and their concerns
245
+ 2.4 Constraints (regulatory, organisational, technical)
246
+
247
+ 3. ARCHITECTURE VIEWS
248
+ 3.1 Context view (C4 Level 1 — system context)
249
+ 3.2 Functional view (C4 Level 2 — containers / building blocks)
250
+ 3.3 Component view (C4 Level 3 — internal structure)
251
+ 3.4 Data flow view (runtime scenarios, numbered walkthrough)
252
+ 3.5 Deployment view (infrastructure topology)
253
+ 3.6 Security view (threat model, control mapping)
254
+
255
+ 4. CROSSCUTTING CONCERNS
256
+ 4.1 Security and identity
257
+ 4.2 Observability (logging, monitoring, tracing)
258
+ 4.3 Resilience and fault tolerance
259
+ 4.4 Scalability and performance
260
+ 4.5 Data management and governance
261
+ 4.6 Integration patterns
262
+
263
+ 5. ARCHITECTURE DECISIONS
264
+ 5.1 Key decisions with rationale (ADR format)
265
+ 5.2 Technology choices and trade-offs
266
+ 5.3 Patterns adopted and why
267
+ 5.4 Alternatives considered
268
+
269
+ 6. QUALITY ATTRIBUTES
270
+ 6.1 Quality attribute requirements (measurable)
271
+ 6.2 Quality scenarios
272
+ 6.3 SLOs and SLAs
273
+ 6.4 Fitness functions for automated validation
274
+
275
+ 7. OPERATIONAL MODEL
276
+ 7.1 Deployment strategy
277
+ 7.2 CI/CD pipeline design
278
+ 7.3 Monitoring and alerting
279
+ 7.4 Incident response
280
+ 7.5 Scaling policies
281
+ 7.6 Disaster recovery
282
+
283
+ 8. IMPLEMENTATION GUIDANCE
284
+ 8.1 Golden path / getting started
285
+ 8.2 Infrastructure-as-code templates
286
+ 8.3 API specifications
287
+ 8.4 Sample code and starter kits
288
+ 8.5 Migration path from existing systems
289
+
290
+ 9. GOVERNANCE
291
+ 9.1 Compliance mapping
292
+ 9.2 Architecture review checklist
293
+ 9.3 Known risks and technical debt
294
+ 9.4 Evolution roadmap
295
+
296
+ 10. GLOSSARY AND REFERENCES
297
+ 10.1 Domain terms
298
+ 10.2 Abbreviations
299
+ 10.3 External references and standards
300
+ ```
301
+
302
+ ---
303
+
304
+ ## 4. Quality Criteria for Reference Architectures
305
+
306
+ ### 4.1 Fundamental Quality Dimensions
307
+
308
+ Research and industry practice identify several dimensions that distinguish good reference architectures from poor ones:
309
+
310
+ #### Applicability
311
+ Four criteria indicate the applicability of a reference architecture (from academic research on reference architecture evaluation):
312
+
313
+ 1. **Range of development pathways** — How many valid design decisions remain? A reference architecture with too few pathways is overly rigid; too many means it's too vague.
314
+ 2. **Size of application area** — How broad is the domain it covers? Larger application areas increase reuse potential but risk becoming too generic.
315
+ 3. **Availability of standards and implementation guides** — Are there concrete artefacts teams can use?
316
+ 4. **Provision of submodels** — Does it provide detailed models for specific aspects (data, security, integration)?
317
+
318
+ #### The Prescriptiveness Spectrum
319
+
320
+ One of the most critical design decisions for a reference architecture is where to sit on the **prescriptiveness spectrum**:
321
+
322
+ | Approach | Characteristics | When to Use |
323
+ |----------|----------------|-------------|
324
+ | **Highly prescriptive** | Specific technologies, exact configurations, ready-to-deploy templates | Organisations seeking standardisation, reducing decision fatigue |
325
+ | **Balanced** | Recommended patterns with defined decision points | Organisations with diverse needs but shared principles |
326
+ | **Flexible / guidance-oriented** | Principles and patterns without technology mandates | Federated organisations, multi-cloud strategies |
327
+
328
+ The hyperscalers tend towards the prescriptive end (since they're promoting their own services), while frameworks like TOGAF and arc42 are deliberately technology-agnostic.
329
+
330
+ ### 4.2 Quality Criteria Checklist
331
+
332
+ Drawing from ISO 25010 quality characteristics, TOGAF principles, and cloud provider practices:
333
+
334
+ **Completeness**
335
+ - Covers all relevant architectural views (structural, behavioural, deployment)
336
+ - Addresses all quality attributes important to the domain
337
+ - Includes both "happy path" and failure scenarios
338
+ - Documents decisions AND their rationale
339
+
340
+ **Clarity**
341
+ - Architecture diagrams follow a consistent notation (C4, ArchiMate, UML)
342
+ - Text is written for the stated audience level
343
+ - Jargon is defined in a glossary
344
+ - Data flows are narrated step-by-step
345
+
346
+ **Consistency**
347
+ - Internal consistency — no contradictions between views
348
+ - External consistency — aligns with organisational principles and standards
349
+ - Terminology is used consistently throughout
350
+
351
+ **Currency**
352
+ - Uses current, supported technology versions
353
+ - Reflects current security best practices
354
+ - Aligned with current vendor recommendations
355
+ - Has a clear versioning and update strategy
356
+
357
+ **Actionability**
358
+ - Provides implementation artefacts (IaC templates, API specs, code samples)
359
+ - Includes a clear "getting started" path
360
+ - Offers deployment automation
361
+ - Contains runnable examples or proof-of-concept code
362
+
363
+ **Reusability**
364
+ - Clearly delineates what is fixed vs. what is customisable
365
+ - Uses parameterisation for environment-specific values
366
+ - Separates concerns to allow partial adoption
367
+ - Documents extension points
368
+
369
+ **Operational Readiness**
370
+ - Includes monitoring and alerting guidance
371
+ - Defines SLOs and scaling policies
372
+ - Addresses disaster recovery
373
+ - Provides runbook templates
374
+
375
+ **Evolvability**
376
+ - Architecture decisions are recorded with rationale
377
+ - Known limitations and technical debt are documented
378
+ - An evolution roadmap exists
379
+ - The architecture supports incremental adoption
380
+
381
+ ### 4.3 Common Anti-Patterns
382
+
383
+ What makes a **bad** reference architecture:
384
+
385
+ - **Diagram-only architectures** — A box-and-arrow diagram without narrative, decisions, or implementation guidance
386
+ - **Stale blueprints** — Reference architectures that haven't been updated in years and recommend deprecated technologies
387
+ - **Ivory tower designs** — Created by architects who don't build, without input from implementing teams
388
+ - **One-size-fits-all** — No customisation points, no decision framework for when the pattern doesn't fit
389
+ - **Missing the "-ilities"** — Focuses only on functional decomposition without addressing security, performance, resilience, or operability
390
+ - **No golden path** — Describes what to build but not how to get started
391
+ - **Undocumented trade-offs** — Presents one option without explaining what was considered and rejected
392
+
393
+ ---
394
+
395
+ ## 5. Assessment Rubrics for Reference Architectures
396
+
397
+ ### 5.1 Architecture Review Boards (ARBs)
398
+
399
+ Architecture Review Boards are the primary governance mechanism for assessing reference architectures. TOGAF's Architecture Governance Framework positions the ARB as a key governing component.
400
+
401
+ #### Typical ARB Assessment Criteria
402
+
403
+ Based on AWS, LeanIX, and TOGAF guidance, ARBs typically evaluate:
404
+
405
+ | Category | Assessment Questions |
406
+ |----------|---------------------|
407
+ | **Strategic Alignment** | Does this align with business strategy and architectural principles? |
408
+ | **Standards Compliance** | Does it conform to enterprise standards and regulatory requirements? |
409
+ | **Security** | Are security best practices implemented (least privilege, encryption, threat modelling)? |
410
+ | **Scalability** | Can it handle projected growth? Are scaling mechanisms defined? |
411
+ | **Reliability** | Are HA and fault tolerance measures adequate? |
412
+ | **Cost** | Is the cost model understood and optimised? |
413
+ | **Operational Readiness** | Can operations teams run this? Are monitoring and incident procedures defined? |
414
+ | **Reusability** | Can other teams adopt this pattern? Is it sufficiently parameterised? |
415
+ | **Technical Debt** | What debt is being introduced? Is it documented and planned for? |
416
+
417
+ #### Decision Framework
418
+
419
+ ARBs typically use a structured decision framework:
420
+
421
+ - **Approve** — Architecture meets all criteria
422
+ - **Approve with conditions** — Architecture is acceptable with specific modifications required
423
+ - **Defer** — More information or analysis needed
424
+ - **Reject** — Architecture does not meet minimum criteria
425
+
426
+ Decisions are usually reached through consensus, with a voting mechanism (e.g. 2/3 majority) used in deadlock cases.
427
+
428
+ ### 5.2 A Reference Architecture Assessment Rubric
429
+
430
+ No single universally adopted rubric exists, but synthesising from ARB practices, TOGAF, and the Well-Architected frameworks, here is a proposed assessment rubric:
431
+
432
+ #### Scoring: 1 (Poor) — 2 (Developing) — 3 (Adequate) — 4 (Good) — 5 (Excellent)
433
+
434
+ **A. Completeness and Coverage (weight: 20%)**
435
+
436
+ | Criterion | 1 | 3 | 5 |
437
+ |-----------|---|---|---|
438
+ | Architectural views | Single diagram only | Multiple views but gaps | Full coverage: context, functional, deployment, data flow, security |
439
+ | Quality attributes | Not addressed | Some mentioned informally | All relevant attributes with measurable targets |
440
+ | Failure scenarios | Not considered | Basic HA described | Comprehensive failure mode analysis with recovery procedures |
441
+ | Decision rationale | No decisions recorded | Key decisions listed | Full ADRs with context, options, consequences |
442
+
443
+ **B. Clarity and Communication (weight: 15%)**
444
+
445
+ | Criterion | 1 | 3 | 5 |
446
+ |-----------|---|---|---|
447
+ | Diagram quality | Ad-hoc notation, inconsistent | Standard notation, mostly clear | Consistent C4/ArchiMate, all elements labelled, legend provided |
448
+ | Narrative quality | Jargon-heavy, assumes deep context | Readable but uneven | Clear, audience-appropriate, with glossary |
449
+ | Data flow documentation | No flow description | Partial walkthrough | Complete numbered step-by-step narrative |
450
+
451
+ **C. Actionability and Implementation (weight: 25%)**
452
+
453
+ | Criterion | 1 | 3 | 5 |
454
+ |-----------|---|---|---|
455
+ | Getting started | No implementation guidance | Some code samples | Complete golden path with scaffolding templates |
456
+ | IaC templates | None provided | Partial templates | Full deployment automation (Terraform/CDK/Bicep) |
457
+ | API specifications | Informal descriptions | Partial OpenAPI specs | Complete, versioned API contracts |
458
+ | CI/CD guidance | Not addressed | Pipeline described | Pipeline-as-code templates provided |
459
+
460
+ **D. Operational Readiness (weight: 20%)**
461
+
462
+ | Criterion | 1 | 3 | 5 |
463
+ |-----------|---|---|---|
464
+ | Monitoring | Not addressed | Metrics mentioned | Dashboard templates, alerting rules, SLO definitions |
465
+ | Scaling | Not addressed | Manual scaling described | Auto-scaling policies with load testing results |
466
+ | DR/BCP | Not addressed | Backup strategy mentioned | Full DR plan with RTO/RPO, tested runbooks |
467
+ | Security posture | Not addressed | Basic security controls | Threat model, control mapping, compliance evidence |
468
+
469
+ **E. Reusability and Evolvability (weight: 10%)**
470
+
471
+ | Criterion | 1 | 3 | 5 |
472
+ |-----------|---|---|---|
473
+ | Customisation points | Monolithic, no variation | Some parameterisation | Clear extension points, decision framework for variants |
474
+ | Versioning | No version control | Versioned document | Architecture-as-code in Git with change history |
475
+ | Evolution roadmap | Static document | Known limitations listed | Roadmap with planned improvements and migration guidance |
476
+
477
+ **F. Governance and Compliance (weight: 10%)**
478
+
479
+ | Criterion | 1 | 3 | 5 |
480
+ |-----------|---|---|---|
481
+ | Standards alignment | No reference to standards | Mentions relevant standards | Explicit mapping to enterprise principles and industry standards |
482
+ | Compliance | Not addressed | Regulatory requirements listed | Control mapping with evidence collection guidance |
483
+ | Review process | No review mechanism | Periodic manual review | Automated fitness functions with continuous validation |
484
+
485
+ ### 5.3 Well-Architected Reviews as Assessment
486
+
487
+ The cloud providers' Well-Architected Reviews serve as de facto assessment rubrics:
488
+
489
+ - **AWS Well-Architected Tool**: Structured questionnaire across six pillars, producing a report with high-risk issues (HRIs) and improvement plan
490
+ - **Azure Well-Architected Review**: Online assessment tool that evaluates workloads against the five pillars
491
+ - **Google Cloud Architecture Review**: Review process aligned to the framework's pillars plus industry-specific perspectives
492
+
493
+ These tools can be repurposed to assess reference architectures by treating the reference architecture as the "workload" being reviewed.
494
+
495
+ ---
496
+
497
+ ## 6. Machine-Readable Aspects
498
+
499
+ ### 6.1 Architecture as Code (AaC)
500
+
501
+ **Architecture as Code** is the practice of describing, version-controlling, and automating the entire system architecture through machine-readable artefacts. It represents a fundamental shift from architecture-as-documents to architecture-as-code.
502
+
503
+ Core principles:
504
+
505
+ - Architecture definitions are **text files** stored in version control
506
+ - Changes are tracked through **pull requests** and code review
507
+ - Architectural rules are enforced through **automated validation**
508
+ - Diagrams are **generated from models**, not drawn manually
509
+
510
+ ### 6.2 Diagram-as-Code Tools
511
+
512
+ Several tools enable machine-readable architecture diagrams:
513
+
514
+ **Structurizr DSL** (recommended for C4 model):
515
+ ```
516
+ workspace {
517
+ model {
518
+ user = person "User"
519
+ system = softwareSystem "My System" {
520
+ webapp = container "Web Application" "Serves the UI" "React"
521
+ api = container "API" "Business logic" "Java/Spring Boot"
522
+ db = container "Database" "Stores data" "PostgreSQL"
523
+ }
524
+ user -> webapp "Uses"
525
+ webapp -> api "Calls" "HTTPS/JSON"
526
+ api -> db "Reads/writes" "JDBC"
527
+ }
528
+ views {
529
+ systemContext system "Context" { include * }
530
+ container system "Containers" { include * }
531
+ }
532
+ }
533
+ ```
534
+
535
+ Key benefit: **one model, multiple views**. Change the model and all diagrams update automatically.
536
+
537
+ Other diagram-as-code tools include:
538
+
539
+ - **PlantUML** — UML and C4 diagrams from text
540
+ - **Mermaid** — Markdown-native diagrams (widely supported in GitHub, GitLab, Notion)
541
+ - **D2** — Modern diagramming language with auto-layout
542
+ - **Diagrams (Python)** — Cloud architecture diagrams as Python code
543
+ - **Mingrammer Diagrams** — AWS/Azure/GCP specific diagram generation
544
+
545
+ ### 6.3 Infrastructure as Code (IaC) as Architecture
546
+
547
+ IaC templates are themselves a form of machine-readable reference architecture:
548
+
549
+ | Tool | Format | Strengths |
550
+ |------|--------|-----------|
551
+ | **Terraform** | HCL | Multi-cloud, large module ecosystem |
552
+ | **AWS CDK** | TypeScript/Python/Java | Type-safe, composable constructs |
553
+ | **Pulumi** | General-purpose languages | Full programming language power |
554
+ | **Azure Bicep** | Domain-specific | Native Azure integration |
555
+ | **Google Cloud Deployment Manager** | YAML/Jinja | Native GCP integration |
556
+ | **Crossplane** | Kubernetes YAML | Infrastructure as Kubernetes resources |
557
+
558
+ **AWS Solutions Constructs** exemplify this: they are CDK libraries that encode Well-Architected reference architecture patterns as deployable code.
559
+
560
+ ### 6.4 Architecture Decision Records (ADRs)
561
+
562
+ ADRs capture significant architectural decisions in a structured, version-controlled format. The standard format (from Michael Nygard):
563
+
564
+ ```markdown
565
+ # ADR-001: Use PostgreSQL for primary data store
566
+
567
+ ## Status
568
+ Accepted
569
+
570
+ ## Context
571
+ We need a relational database that supports JSONB for semi-structured data,
572
+ has strong ecosystem support, and is available as a managed service on all
573
+ major cloud providers.
574
+
575
+ ## Decision
576
+ We will use PostgreSQL as our primary relational data store.
577
+
578
+ ## Consequences
579
+ - Teams have a clear default database choice
580
+ - We can leverage JSONB for flexible schemas
581
+ - We need PostgreSQL expertise on the platform team
582
+ - Applications requiring pure document storage may need a separate decision
583
+ ```
584
+
585
+ **Machine-readable ADR formats** are emerging:
586
+
587
+ - **Decision Reasoning Format (DRF)**: A vendor-neutral YAML/JSON format for decisions with explicit reasoning, assumptions, cognitive state, and trade-offs
588
+ - **MADR (Markdown Architectural Decision Records)**: Structured Markdown with YAML front matter
589
+ - **Log4brains**: Tool that manages ADRs as a searchable knowledge base
590
+
591
+ ### 6.5 API Specifications
592
+
593
+ Reference architectures increasingly embed machine-readable API contracts:
594
+
595
+ - **OpenAPI / Swagger** — REST API specifications
596
+ - **AsyncAPI** — Event-driven and message-based API specifications
597
+ - **GraphQL SDL** — Schema definition for GraphQL APIs
598
+ - **Protocol Buffers** — gRPC service definitions
599
+ - **JSON Schema** — Data validation contracts
600
+
601
+ These specifications can be used for automated contract testing, documentation generation, and client SDK generation.
602
+
603
+ ### 6.6 Fitness Functions for Automated Assessment
604
+
605
+ **Architecture fitness functions** (coined by Neal Ford and colleagues in "Building Evolutionary Architectures") are automated tests that validate architectural characteristics:
606
+
607
+ Types of fitness functions relevant to reference architecture conformance:
608
+
609
+ | Type | Example | Automation |
610
+ |------|---------|-----------|
611
+ | **Dependency rules** | "Service A must not directly depend on Service C's database" | ArchUnit, Dependency-Check |
612
+ | **Performance budgets** | "API response time < 200ms at p99" | Load testing in CI/CD |
613
+ | **Security policies** | "No public S3 buckets, all data encrypted at rest" | OPA/Rego policies, cfn-nag, Checkov |
614
+ | **API conformance** | "All APIs must follow our OpenAPI conventions" | Spectral linting |
615
+ | **Infrastructure compliance** | "All deployments must use approved instance types" | Sentinel (Terraform), AWS Config Rules |
616
+ | **Operational readiness** | "All services must have health checks and readiness probes" | Kubernetes admission controllers |
617
+
618
+ The key insight: fitness functions **shift governance left** — from periodic architecture reviews to continuous, automated validation in the CI/CD pipeline. They turn reference architecture principles into executable policy.
619
+
620
+ ### 6.7 Putting It Together: A Machine-Readable Reference Architecture
621
+
622
+ A fully machine-readable reference architecture might be structured as a Git repository:
623
+
624
+ ```
625
+ reference-architecture/
626
+ ├── README.md # Human-readable overview
627
+ ├── docs/
628
+ │ ├── architecture/
629
+ │ │ ├── workspace.dsl # Structurizr C4 model
630
+ │ │ ├── context.md # Context narrative
631
+ │ │ └── decisions/ # ADRs
632
+ │ │ ├── 001-database-choice.md
633
+ │ │ ├── 002-messaging-pattern.md
634
+ │ │ └── ...
635
+ │ ├── runbooks/ # Operational runbooks
636
+ │ └── quality/
637
+ │ ├── quality-scenarios.yaml # Machine-readable quality requirements
638
+ │ └── slo-definitions.yaml # SLO definitions
639
+ ├── infrastructure/
640
+ │ ├── terraform/ # IaC templates
641
+ │ │ ├── modules/
642
+ │ │ └── environments/
643
+ │ └── kubernetes/ # K8s manifests / Helm charts
644
+ ├── api/
645
+ │ ├── openapi.yaml # API specification
646
+ │ └── asyncapi.yaml # Event specification
647
+ ├── templates/
648
+ │ ├── backstage-template.yaml # Backstage scaffolder template
649
+ │ └── cookiecutter/ # Project scaffolding
650
+ ├── fitness-functions/
651
+ │ ├── arch-rules/ # ArchUnit / dependency rules
652
+ │ ├── security-policies/ # OPA/Rego policies
653
+ │ ├── performance-budgets/ # Load test definitions
654
+ │ └── compliance-checks/ # Regulatory compliance checks
655
+ ├── examples/
656
+ │ ├── sample-service/ # Reference implementation
657
+ │ └── integration-tests/ # End-to-end tests
658
+ └── CHANGELOG.md # Version history
659
+ ```
660
+
661
+ This structure enables:
662
+ - **Automated diagram generation** from the Structurizr DSL
663
+ - **One-click deployment** via IaC templates
664
+ - **Continuous compliance** via fitness functions in CI/CD
665
+ - **Self-service adoption** via Backstage templates
666
+ - **Version-controlled evolution** via Git history and ADRs
667
+ - **Machine-parseable quality requirements** for automated assessment
668
+
669
+ ---
670
+
671
+ ## 7. Synthesis: Principles for Excellent Reference Architectures
672
+
673
+ Across all the research, several overarching principles emerge:
674
+
675
+ 1. **Reference architectures are products, not projects.** They need ongoing investment, a roadmap, feedback loops, and versioning — just like the software they describe.
676
+
677
+ 2. **The best reference architectures are executable.** A reference architecture that exists only as a PDF or wiki page will drift from reality. The gold standard is architecture-as-code that can be deployed, tested, and validated automatically.
678
+
679
+ 3. **Opinions are a feature, not a bug.** The value of a reference architecture is proportional to the number of decisions it makes for you. Vague guidance that says "choose an appropriate database" is less useful than specific guidance that says "use PostgreSQL for OLTP workloads with these configurations."
680
+
681
+ 4. **Multiple audiences require multiple layers.** A single 50-page document doesn't serve executives and developers equally. Layer the architecture: context for executives, component models for architects, deployment templates for developers, runbooks for operations.
682
+
683
+ 5. **Golden paths operationalise reference architectures.** A reference architecture describes what to build; a golden path makes it easy to build it. The most effective organisations pair every reference architecture with a corresponding Backstage template or scaffolding tool.
684
+
685
+ 6. **Fitness functions close the governance loop.** Without automated validation, reference architecture conformance degrades over time. Fitness functions turn architectural principles into executable tests.
686
+
687
+ 7. **Document decisions, not just designs.** The rationale behind architectural choices is often more valuable than the choices themselves, because it enables future teams to understand when the architecture should evolve.
688
+
689
+ ---
690
+
691
+ ## Sources
692
+
693
+ ### Cloud Provider Reference Architectures
694
+ - [AWS Architecture Center](https://aws.amazon.com/architecture/)
695
+ - [AWS Reference Architecture Diagrams](https://aws.amazon.com/architecture/reference-architecture-diagrams/)
696
+ - [AWS Solutions Constructs](https://aws.amazon.com/blogs/aws/aws-solutions-constructs-a-library-of-architecture-patterns-for-the-aws-cdk/)
697
+ - [AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html)
698
+ - [Azure Architecture Center](https://learn.microsoft.com/en-us/azure/architecture/)
699
+ - [Azure Best Practices](https://learn.microsoft.com/en-us/azure/architecture/best-practices/index-best-practices)
700
+ - [Google Cloud Architecture Center](https://docs.cloud.google.com/architecture)
701
+ - [Google Cloud Well-Architected Framework](https://docs.cloud.google.com/architecture/framework)
702
+
703
+ ### TOGAF and Enterprise Architecture
704
+ - [TOGAF Architecture Principles](https://pubs.opengroup.org/architecture/togaf9-doc/arch/chap20.html)
705
+ - [TOGAF Enterprise Continuum](https://pubs.opengroup.org/architecture/togaf9-doc/arch/chap35.html)
706
+ - [TOGAF Architecture Review Board](https://pubs.opengroup.org/architecture/togaf8-doc/arch/chap23.html)
707
+ - [What is a Reference Architecture? — Conexiam](https://conexiam.com/what-is-a-reference-architecture/)
708
+
709
+ ### Golden Paths and Platform Engineering
710
+ - [How We Use Golden Paths to Solve Fragmentation — Spotify Engineering](https://engineering.atspotify.com/2020/08/how-we-use-golden-paths-to-solve-fragmentation-in-our-software-ecosystem)
711
+ - [How Spotify Leverages Paved Paths — InfoQ](https://www.infoq.com/news/2021/03/spotify-paved-paths/)
712
+ - [What is a Golden Path? — Red Hat](https://www.redhat.com/en/topics/platform-engineering/golden-paths)
713
+ - [Designing Golden Paths — Red Hat](https://www.redhat.com/en/blog/designing-golden-paths)
714
+ - [Engineering Platforms and Golden Paths — ThoughtWorks](https://www.thoughtworks.com/en-us/insights/podcasts/technology-podcasts/engineering-platforms-golden-paths-building-better-developer-experiences)
715
+ - [Platform Engineering: Rebuilding the Core — ThoughtWorks](https://www.thoughtworks.com/insights/blog/platforms/platform-engineering--rebuilding-the-core-for-developer-effectiv)
716
+ - [Backstage Software Templates — Spotify](https://backstage.spotify.com/learn/onboarding-software-to-backstage/setting-up-software-templates/11-spotify-templates/)
717
+ - [How to Build Golden Paths Developers Will Actually Use — Jellyfish](https://jellyfish.co/library/platform-engineering/golden-paths/)
718
+ - [Golden Paths in Platform Engineering — Cyclops](https://cyclops-ui.com/blog/2025/04/24/golden-paths/)
719
+
720
+ ### Architecture Documentation Templates
721
+ - [arc42 Template Overview](https://arc42.org/overview)
722
+ - [arc42 Documentation](https://docs.arc42.org/home/)
723
+ - [arc42 + C4 Example — bitsmuggler](https://bitsmuggler.github.io/arc42-c4-software-architecture-documentation-example/)
724
+ - [Effective Architecture Documentation with arc42 and C4 — Torsten Mosis](https://www.linkedin.com/pulse/effective-architecture-documentation-arc42-c4-torsten-mosis)
725
+ - [The Ultimate Guide to Software Architecture Documentation](https://www.workingsoftware.dev/software-architecture-documentation-the-ultimate-guide/)
726
+
727
+ ### Architecture as Code and Machine-Readable Formats
728
+ - [Architecture as Code — aac.muthub.org](https://aac.muthub.org/)
729
+ - [Introduction to Architecture as Code — aac.geon.se](https://aac.geon.se/01_introduction/)
730
+ - [Getting Started with Architecture as Code — TechTarget](https://www.techtarget.com/searchapparchitecture/tip/Getting-started-with-architecture-as-code)
731
+ - [Structurizr](https://structurizr.com/)
732
+ - [Structurizr DSL](https://docs.structurizr.com/dsl)
733
+ - [Architecture Decision Records — Joel Parker Henderson](https://github.com/joelparkerhenderson/architecture-decision-record)
734
+
735
+ ### Fitness Functions and Automated Governance
736
+ - [Fitness Functions — Continuous Architecture](https://continuous-architecture.org/practices/fitness-functions/)
737
+ - [Fitness Functions for Your Architecture — InfoQ](https://www.infoq.com/articles/fitness-functions-architecture/)
738
+ - [Fitness Functions — ThoughtWorks](https://www.thoughtworks.com/insights/decoder/f/fitness-functions)
739
+ - [Automated Architecture Compliance Using Fitness Functions — LinkedIn](https://www.linkedin.com/pulse/automated-architecture-compliance-assessments-leveraging-bayan)
740
+ - [Governing Data Products Using Fitness Functions — Martin Fowler](https://martinfowler.com/articles/fitness-functions-data-products.html)
741
+
742
+ ### Architecture Review and Governance
743
+ - [Build and Operate an Effective ARB — AWS Architecture Blog](https://aws.amazon.com/blogs/architecture/build-and-operate-an-effective-architecture-review-board/)
744
+ - [Architecture Review Board — LeanIX](https://www.leanix.net/en/wiki/ea/architecture-review-board)
745
+ - [Architecture Review Board Checklist — Hava](https://www.hava.io/blog/architecture-review-board-checklist)
746
+ - [What Is an Enterprise Architecture Review Board? — Conexiam](https://conexiam.com/what-is-an-enterprise-architecture-review-board/)
747
+
748
+ ### Quality and Evaluation
749
+ - [Reference Architecture — ScienceDirect](https://www.sciencedirect.com/topics/computer-science/reference-architecture)
750
+ - [arc42 Quality Requirements (ISO 25010)](https://github.com/arc42/quality-requirements/blob/main/doc/iso-25010-definitions.txt)
751
+ - [Software Architecture Quality Attributes — Syndicode](https://syndicode.com/blog/12-software-architecture-quality-attributes/)