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, 0030, and integration boundary ADR 0038
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 0022, 0026, and 0032–0035 supersede or refine the earlier Azure Local SCOM baseline
Azure Local Azure MonitorADRs 0006, 0010, 0012, 0013, 0019, and current preview refinement ADR 0036
Hyper-V platform and SCOMAccepted ADRs 0022, 0025–0029, 0031, and 0040–0048 for product boundary, network authority, DA, object/discovery, health/DA, authoring toolchain, external ownership, Pure Storage, SOFS/networking, v2 packaging, Network ATC, SDN, VMM, explicit PowerShell 7 execution, and governed release sealing; ADR 0040 supersedes 0039 and ADR 0043 supersedes 0027 for v2
Hyper-V Azure MonitorADR 0023 constrained go and ADR 0037 development architecture

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 — constrained goAccepted
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 boundaryAccepted
0028Hyper-V object and discovery architecture — stable mobility identity, staged discovery, and cookdownAccepted
0029Hyper-V health, alert, and DA rollup — evidence-driven state, actionable alerts, and topology-aware service healthAccepted
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 authorityAccepted
0032Azure Local SCOM local runtime boundary — no Azure dependency in the core productAccepted
0033Azure Local Management Pack decomposition — five independent artifacts and customer-owned overridesAccepted
0034Azure Local object, discovery, and Distributed Application architectureAccepted
0035Azure Local health, alert, and rollup architectureAccepted
0036Azure Local Azure Monitor Health Model v1 — preview resource graph, identity, entities, and initial signalsAccepted
0037Hyper-V Azure Monitor Health Model — SCVMM inventory plus Arc-enabled host telemetryAccepted
0038SCOM-to-ServiceNow connector boundary — optional MID Server connector with product allow-listsAccepted
0039Hyper-V v2 external object ownership — initial adapter decision before S2D/SDN inspectionSuperseded by 0040
0040Hyper-V v2 Microsoft S2D and SDN ownership — authoritative Microsoft objects through optional adaptersAccepted
0041Hyper-V v2 Pure Storage integration — vendor-owned topology with HCS SAN-to-VM correlationAccepted
0042Hyper-V v2 file services and physical network ownership — Microsoft objects with HCS service correlationsAccepted
0043Hyper-V v2 package and deployment profiles — four required core MPs plus optional capability adaptersAccepted
0044Hyper-V v2 Network ATC monitoring — stable intent/node identity, explicit authority, read-only convergence and adapter healthAccepted
0045Hyper-V v2 Windows Server SDN integration — Microsoft-owned topology with read-only HCS binding and service impactAccepted
0046Hyper-V v2 Virtual Machine Manager integration — build-matched Microsoft fabric with read-only HCS gap coverage and service impactAccepted
0047Hyper-V v2 execution host — public SCOM command executors launch the machine-wide PowerShell 7 MSI path explicitlyAccepted
0048Hyper-V v2 governed sealing — permanent product identity, fail-closed packaging, checksums, and stable release assetsAccepted

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.