Architecture Decision Records
Significant architectural decisions for the Mandala Drupal 11 rebuild are recorded here.
Each ADR is numbered sequentially and immutable once accepted — superseded decisions get a new ADR that references the old one, rather than editing in place.
| # | Title | Status |
|---|---|---|
| 001 | Consolidate all components into a single monorepo | Accepted |
| 002 | Target Drupal 11 (not Drupal 10) | Accepted |
| 003 | Replace Aegir/docker-compose with Terraform + Ansible + AWS CodePipeline | Accepted |
| 004 | Treat existing Solr infrastructure as source of truth; defer Solr refactor | Accepted |
| 005 | Redesign as Drupal single-site rather than multisite | Accepted |
| 006 | Maintain kmterms-in-kmassets shadow entries for subjects, places, and terms | Accepted |
| 007 | reindeer_x lives as an independent deployable service, not in the monorepo | Accepted |
| 008 | MVP scope is migrate, not improve | Accepted |
| 009 | Migration sequencing: Images pilot → mob → parallel tracks → AV last | Accepted |
| 010 | Clarify scope of "migrate, not improve": user-facing features, not internal architecture (refines ADR 008) | Accepted |
| 011 | Group collections inheritance: entity-reference nesting + custom hooks (Option D); lands in Sprint 1 Step 1b | Accepted |
| 012 | Local DDEV runs the production DB engine (MySQL 8.4), not DDEV's default MariaDB, for migration/collation fidelity | Accepted |
| 013 | Drupal is the source of truth; Solr/client compatibility is an essential active requirement (supersedes ADR 004) | Accepted |
| 014 | Hybrid Solr proxy: Drupal writes Redis visibility tokens; lightweight standalone proxy reads them; D11 proxy forked into monorepo | Accepted |