Skip to content

Architecture Decision Records

An Architecture Decision Record (ADR) captures a single significant architectural decision: its context, the decision taken, its status, and its consequences. ADRs make the why behind the architecture durable and auditable, so future contributors (human and agent) understand the reasoning rather than re-litigating settled choices.

Why ADRs in an AI factory

The factory generates software autonomously. ADRs are the canonical record of the constraints the agents operate under — they ground the Architecture Principles and the technology choices baked into templates and generation. The Architecture Decision Record Agent proposes and maintains ADRs as part of the workflow.

Status lifecycle

flowchart LR
    proposed["Proposed"] --> accepted["Accepted"]
    proposed --> rejected["Rejected"]
    accepted --> deprecated["Deprecated"]
    accepted --> superseded["Superseded"]
    superseded --> newadr["New ADR"]
Hold "Alt" / "Option" to enable pan & zoom
Status Meaning
Proposed Under discussion; not yet binding.
Accepted The decision is in force and binding on the architecture.
Rejected Considered and explicitly not adopted.
Deprecated No longer recommended but not yet replaced.
Superseded Replaced by a later ADR (linked).

How to add an ADR

  1. Copy the ADR template.
  2. Number it sequentially (NNNN-short-title.md).
  3. Fill in Context, Decision, Status, Consequences, and Alternatives.
  4. Link related ADRs and the principle/architecture pages it affects.
  5. Add it to the index table below and to the nav.

Index

ADR Decision Status
0001 .NET 10 as the backend platform Accepted
0002 Microsoft Agent Framework over Semantic Kernel Accepted
0003 MassTransit on Azure Service Bus as primary messaging Accepted
0004 Pulumi over Bicep for Infrastructure as Code Accepted
0005 Qdrant as the primary vector store Accepted
0006 NHibernate as the primary ORM Accepted
0007 Blazor micro-frontend (MFE) for the Studio Accepted
0008 OpenIddict for identity and OAuth2/OIDC Accepted
0009 Clean Architecture + DDD for services Accepted
0010 Event-driven architecture with a canonical envelope Accepted
0011 Shared-with-tenant-guard multi-tenancy model Accepted
0012 Messaging port with transport profiles (amends 0003) Accepted 2026-10-09
0013 Vector store as a retrieval profile (amends 0005) Accepted 2026-10-09
0014 Run identity and lifecycle envelopes (amends 0010) Accepted 2026-10-09
0015 Factory tenancy and scope under canonical ADR-0100 (amends 0011) Accepted 2026-10-09
0016 Architecture meta-model: planes, platforms, bounded contexts, services Accepted 2026-10-09
0017 Deployment profiles (saas-default, hybrid, on-prem, hybrid-compute) Accepted 2026-10-09
0018 NFR baseline for the pilot class Accepted 2026-10-09
0019 Data governance: regions, classification, retention, deletion, export Accepted 2026-10-09
0020 Commercial model on the SaaS templates Accepted 2026-10-09
0021 Evaluation-driven release gates Accepted 2026-10-09
0022 MCP as the tool, resource and prompt protocol Accepted 2026-10-09
0023 A2A as the agent-to-agent interoperability surface Accepted 2026-10-09
0024 Durable execution substrate: Orleans grains with the Agent Framework as adapter Accepted 2026-10-12
0025 SaaS descriptors are imported into blueprints; the recipe path is the single generation contract (closes Q-22) Accepted 2026-10-14
0026 Requirements-to-UX handoff: typed input bundle, Reviewer-approved alignment memo, readiness activation in the Workflow Engine, two UX passes Accepted 2026-10-23, amended 2026-10-26 (D63–D64: readiness activation for every event-started definition, alignment after discovery, blueprint-submit-version shared-write)

2026-10 review

All eleven original ADRs were reassessed against the repositories on 2026-10-09 (see handoffs/2026-10-09-independent-review/adr-dispositions.md). Each carries a dated review note under its header. Their Date field (2026-01-01) is the value from the 2026-06-17 bulk commit that introduced them, not an approval date; no retrospective date was invented.

Disposition ADRs
Retained with clarification 0001, 0002, 0004 (IaC verified: Pulumi programs, zero Bicep), 0006, 0007, 0008, 0009
Amended (original stays in force except where the amendment changes it) 0003 → 0012, 0005 → 0013, 0010 → 0014, 0011 → 0015 (all accepted 2026-10-09)
New decisions of the full design plan (accepted 2026-10-09) 0016 meta-model, 0017 deployment profiles, 0018 NFR baseline, 0019 data governance, 0020 commercial model, 0021 quality gates, 0022 MCP, 0023 A2A; 0024 durable execution substrate accepted 2026-10-12; 0025 SaaS descriptor import accepted 2026-10-14; 0026 requirements-to-UX handoff accepted 2026-10-23

Binding canonical decisions in ConnectSoft.Documentation apply in addition to this index: ADR-00xx (template layering and submodules), ADR-0100 (SaaS multitenancy resolution) and ADR-0101 (Identity Platform). They are not renumbered here; Factory ADRs reference them. A shared AI/messaging decision is proposed for the canonical repository with a Factory supplement (user decision D10).