Skip to main content

Architectural Decision Records (ADRs)

This directory contains the Architectural Decision Records for the Citadel project. ADRs are the primary mechanism for proposing, discussing, and recording significant architectural decisions.

ADR Process & Numbering

As defined in ADR-0014: ADR Management and Numbering Strategy, all ADRs in this project follow a global, sequential numbering system, regardless of whether they are platform-wide or service-specific.

Next ADR Number: 0055

Last ADR Number Used: 0054

To create a new ADR:

  1. Copy the 0000-template.md to a new file.
  2. Assign it the next available number (e.g., 0052-my-new-decision.md).
  3. Place it in the appropriate directory (/website/docs/03-architecture/adrs/ for global ADRs, or /website/docs/04-services/<service-name>/adrs/ for service-specific ADRs).
  4. Update the "Last ADR Number Used" and "Next ADR Number" in this file.
  5. Submit a Merge Request for review.

Master ADR Index

This table provides a complete, chronologically ordered list of all architectural decisions made for the project.

Global ADRs

These decisions affect the entire platform or establish cross-cutting conventions.

NumberTitle
0001Standardized Service Layout
0002Swappable Infrastructure via Adapters
0003Standardized Frontend Layout
0005Frontend Build and Configuration Strategy
0012Third-Party Integration Strategy
0013Project Rename to Citadel
0014ADR Management and Numbering Strategy
0015Contextual Shell Chrome Strategy
0017Multiple Account Management Strategy
0019API Gateway RBAC via External Authorization
0021Contribution and Proposal Management Strategy
0023IAM Service as a Policy and Authorization Claims Engine
0024IAM Service as a Policy and Claims Enrichment Engine
0052IAM Service Consolidation
0054Service-Defined Role and Attribute Management

Service-Specific ADRs

These decisions are scoped to a single service.

NumberTitleService
0007IAM Service Persistence Strategyiam-service
0008IAM Service S2S Authenticationiam-service
0009IAM Multi-Tenancy Mapping Strategyiam-service
0010API Gateway Technology and Configuration Strategyapi-gateway
0011API Gateway Security Policyapi-gateway
0025Tenant Switching Flowiam-service
0026Customization Definition Languagescustomization-service
0027Customization Service Scope and Boundariescustomization-service
0028Schema Ownership and Scopescustomization-service
0029Policy Service Architecturepolicy-service
0030Policy Scopingpolicy-service
0031Engine-Agnostic Policy Data Modelpolicy-service
0032Data Propagation Strategypolicy-service
0033Permission Naming Conventionpolicy-service
0034ReBAC Engine Selectionpermissions-service
0035Permissions Schema vs Data Managementpermissions-service
0036Permissions Multi-Tenancy and Scoping Strategypermissions-service
0039Workflow Engine Selectionworkflow-service
0040Workflow Core Concepts and Patternsworkflow-service
0041Workflow Security and Context Propagationworkflow-service
0042Workflow Error Handling and Compensation Strategyworkflow-service
0043Workflow Scheduled and Recurring Tasksworkflow-service
0047Dynamic Workflow Execution via Interpreterworkflow-service
0048Swappable Storage Adaptersbook-keeper
0049Event-Driven Integration Patternbook-keeper
0050Event Sourcing for Audit Trailbook-keeper
0051Anti-Corruption Layer for External Eventsbook-keeper
0053S2S-First IAM Architectureiam-service

Archived ADRs

These decisions have been superseded by newer ADRs or relate to archived services. Kept for historical context.

NumberTitleService/ContextReason
0004Angular Change Detection StrategyGlobalSuperseded by framework evolution
0006OAuth2 Client Strategyiam-serviceSuperseded by ADR-0023, ADR-0024
0016User Impersonation StrategyGlobalFeature deferred
0018API Gateway RBAC Strategyapi-gatewaySuperseded by ADR-0019
0020IAM Service Facade Philosophyiam-serviceSuperseded by ADR-0024
0022IAM Service OIDC State Storage Strategyiam-serviceNo longer managing OIDC state
0037Onboarding Adapter Architectureonboarding-serviceService archived (replaced by workflow pattern)
0038Onboarding Pipeline to Workflow Mappingonboarding-serviceService archived (replaced by workflow pattern)
0044Tenant State Machinetenant-lifecycle-serviceService consolidated into iam-service (ADR-0052)
0045Swappable Payment Providerspayment-gateway-serviceService removed (not core platform yet)
0046Payment Gateway Secure Credential Managementpayment-gateway-serviceService removed (not core platform yet)
0026Customization Definition Languagescustomization-serviceService consolidated into iam-service (ADR-0052)
0027Customization Service Scope and Boundariescustomization-serviceService consolidated into iam-service (ADR-0052)
0028Schema Ownership and Scopescustomization-serviceService consolidated into iam-service (ADR-0052)
0029Policy Service Architecturepolicy-serviceService consolidated into iam-service (ADR-0052)
0030Policy Scopingpolicy-serviceService consolidated into iam-service (ADR-0052)
0031Engine-Agnostic Policy Data Modelpolicy-serviceService consolidated into iam-service (ADR-0052)
0032Data Propagation Strategypolicy-serviceService consolidated into iam-service (ADR-0052)
0033Permission Naming Conventionpolicy-serviceService consolidated into iam-service (ADR-0052)