Skip to content

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