Skip to content
bitzorcas
中EN

Concept

Architecture decisions

The BitzOrcas ADR index — taxonomy, lifecycle, numbering, and the selected decisions most relevant to delivery, security, operations, and modularity.

Last updated

Architecture Decision Records capture why a choice was made, what alternatives were rejected, and what is superseded. They are the durable reasoning behind the code; the code is the implementation. When a doc, a test, and an implementation disagree, the latest Accepted ADR wins.

Context and conflict

Accepted ADR

Architecture invariants

Machine manifests and migration ratchets

Architecture tests / verify gate

Releasable implementation

ADR taxonomy

Every ADR is one of five tiers.

TierWhat it isHow it is protected
ConstitutionLong-term invariants (Native AOT, module boundaries, dual-ORM parity, explicit pipelines)architecture tests / verify gate
StrategyCurrent main-path strategies (repository/store, unified aggregate, Mapperly, deep module)protect intent, not replaceable implementation
MigrationMigration-period mechanisms (compat adapters, legacy allowlist, assembly mapping specs)must declare owner, expiration, and delete condition
HistoricalSuperseded decisions kept only as backgroundno current binding force
ReferenceUsage manuals/playbooksnot an ADR — lives in docs/guides or docs/architecture

Numbering and lifecycle

Numbering is category-segmented: Governance 00xx, Foundation 01xx, Modularity 02xx, Persistence 03xx, Cross-cutting 04xx, Security 05xx, Operations 06xx, Capabilities 07xx, Superseded/Historical 99xx. Files are named <category>-<kebab-title>.md. Each category directory is the canonical location; the ADR root holds only an index.

The core principle: architecture tests protect invariants, not implementation. Tests that force a particular file shape (*Entity.cs, handwritten Search*Query) or that treat a compat adapter or allowlist as a success state are deleted or downgraded. Migration-tier rules must be deletable — every one declares an owner, scope, expiration, delete condition, current blocker, and whether its test is a ratchet or permanent gate.

Architectural Decision Traceability Matrix

The nine core architectural decisions most critical to system delivery, regulatory security compliance, multi-tenant operations, and modular engineering are indexed below alongside their concrete source implementations and protective verification gates:

ADR IDDecision Intent & ScopeTierSource Tree LocationProtective Guardrails / Verification Suites
0001 — Rule LifecycleArchitecture rule classification and migration ratchet governanceConstitutiontests/ArchitectureTests/ArchUnitExtensions permanent gates
0002 — Production ReadinessHard release blockades against fake implementations, deadlocks, and unhandled faultsConstitutionscripts/deploy/verify-gates.sh / Error budget alerts
0102 — Native AOT ConstraintsDeterministic sub-millisecond cold start, minimal memory footprint, and trimming safetyConstitutionsrc/Framework/<PublishAot>true</PublishAot> build checks
0103 — Source Generator vs ReflectionComplete elimination of runtime reflection in favor of compile-time code generationStrategysrc/Framework/*.SourceGeneratorZero-reflection dynamic loading assertions
0203 — Physical Directory LayoutUnidirectional boundary isolation between Framework foundation and Modules domainsConstitutionsrc/Modules/SandboxModuleDependencyTests cross-layer assertions
0205 — Package Distribution ModelAtomic private commercial package feeds and non-invasive customer extensionsStrategysrc/Profiles/ConsumerContractTests isolated test suites
0503 — Signed Commercial LicenseES256 asymmetric cryptographic verification with physical hardware fingerprint bindingConstitutionsrc/Framework/BitzOrcas.Licensing.RuntimeMachine hash parity and tamper-proof audit trails
0504 — Community License Policies30-seat in-app community entitlement metering and soft/hard expiry lifecycleStrategysrc/Framework/BitzOrcas.Licensing.ContractsSeat consumption tracking and graceful degradation
0605 — Private NuGet Supply ChainAutomated credential rotation, cryptographic package signing, and SBOM provenanceStrategyscripts/ci/NuGet package signature and anti-tamper gates

Full catalog

The source repository holds 31 ADRs across nine categories. The categories not yet published here (persistence 03xx, cross-cutting 04xx, operations 06xx minus 0605, capabilities 07xx, and superseded 99xx) are available in the source repo’s docs/adr/ tree.


See also

100%

Scroll or use controls to zoom · drag when enlarged · double-click for 100% / 200%