Skip to content

Architecture Decision Records

Lightweight, numbered, immutable records of architectural decisions that govern the shared foundation plus the Azure Local and Hyper-V platform tracks.

These are project-scoped ADRs. Org-wide platform standards live in AzureLocal/platform/decisions/.

Design lane scope map

The early accepted ADRs were written for the Azure Local baseline. They do not automatically govern Hyper-V simply because both products use SCOM or share health terminology.

Design laneGoverning decisions
Shared portfolio architectureADRs 0020, 0021, 0024, and 0030
Shared SCOM product boundariesADR 0022 requires independent runtime products; ADR 0026 requires platform-owned DAs
Azure Local platform baselineADRs 0001–0003, 0007–0009, and 0014–0018
Azure Local SCOMADRs 0004, 0005, 0011, 0022, and 0026
Azure Local Azure MonitorADRs 0006, 0010, 0012, 0013, and 0019
Hyper-V platform and SCOMAccepted ADRs 0022, 0025, and 0026 plus proposed ADRs 0027–0029 and 0031 for package, object/discovery, health/DA, and authoring-toolchain architecture
Hyper-V Azure MonitorADR 0023, proposed go/defer/no-go gate

Cross-cutting lifecycle ADRs can provide reusable patterns, but each platform and delivery lane must still validate its applicable topology, dependencies, artifacts, tests, and release contract.

Index

#TitleStatus
0001Scope & topology — Azure Local infrastructure (3 layers, ~27 entities)Accepted
0002Primary signal source — Azure Local PowerShell APIs + ARM/Resource GraphAccepted
0003Health rollup policy — worst-state default with documented exceptionsAccepted
0004SCOM discovery strategy — PowerShell Discovery (not WMI)Accepted
0005SCOM class hierarchy + hosting relationships (3-layer model)Accepted
0006Azure Monitor entity model alignment (mirrors SCOM 1:1)Accepted
0007Naming convention — cross-track parityAccepted
0008Customization strategy — sealed MP + override pack tiers; Bicep params + tiersAccepted
0009Alert vs health-state separation policyAccepted
0010Cloud-side prerequisites contract (HCI Insights, AMA, DCMA, Service Group, RBAC, networking)Accepted
0011L3 Azure-side scope: agent-local Arc health checks (Tier A) vs. management server ARM probes (Tier B)Accepted
0012Azure Monitor Workspace vs Log Analytics Workspace: metrics routing for the health model (dual-topology support)Accepted
0013Azure Monitor Health Model deployment strategy — Bicep-first, portal-bootstrapAccepted
0014CI/CD pipeline strategy — GitHub Actions, OIDC, release-pleaseAccepted
0015Testing strategy — 5-layer pyramid, cross-track parity gateAccepted
0016Signing & secrets management — two-key MP signing, OIDC SPNsAccepted
0017Versioning & release policy — single repo SemVer, Conventional Commits, mike docsAccepted
0018Self-observability — monitor the monitoring pipeline as a parallel root branchAccepted
0019Cost, scale, and data retention — per-tier ingestion envelopes, sharding, retention policyAccepted
0020Documentation platform — VitePress with Mermaid and GitHub PagesAccepted
0021Platform-first architecture — Azure Local and Hyper-V, split by SCOM and Azure Monitor delivery surfacesAccepted
0022Independent SCOM packaging — no shared runtime MP dependenciesAccepted
0023Hyper-V Azure Monitor through Arc-enabled SCVMM — go, defer, or no-go gateProposed
0024Repository and publishing identity — Hybrid Solutions Cloud and labs.hybridsolutions.cloudAccepted
0025Hyper-V network-management authority — prefer Network ATC when eligible; distinguish SCVMM/SDN and manual pathsAccepted
0026Platform-owned SCOM Distributed Applications — separate Azure Local and Hyper-V service rootsAccepted
0027Hyper-V SCOM Management Pack decomposition — modular sealed product suite and customer override boundaryProposed
0028Hyper-V object and discovery architecture — stable mobility identity, staged discovery, and cookdownProposed
0029Hyper-V health, alert, and DA rollup — evidence-driven state, actionable alerts, and topology-aware service healthProposed
0030Platform-first source tree — Azure Local and Hyper-V, each split into SCOM and Azure Monitor solution rootsAccepted
0031Hyper-V Management Pack authoring toolchain — canonical XML/fragments, deterministic build, Microsoft verification/sealing, and SCOM lab authorityProposed

When to write an ADR

  • Any architectural choice that affects how the SCOM MP or Azure Monitor health model is built
  • Any decision that creates a constraint on Phases 3–6
  • Any cross-track parity decision
  • Any decision the next maintainer would otherwise have to re-litigate

Format

See template.md. Numbered sequentially, ZERO-padded to four digits. Filename is NNNN-kebab-case-title.md. Once an ADR is Accepted it is immutable — supersede it with a new ADR rather than editing it in place.

Workflow

  1. Open a PR adding the ADR with status Proposed
  2. Discuss and refine in PR review
  3. Merge with status Accepted once consensus reached
  4. If later overturned, write a successor ADR and mark this one Superseded by ADR XXXX

Released under the MIT License.