Artifact Registry: Architecture Blueprint
This epic tracks all architecture blueprint work for the Artifact Registry following the CTO Review decisions to proceed with Organizations-only and satellite service architecture. ## Context Following the CTO Review follow-up meetings tracked in [#589257](https://gitlab.com/gitlab-org/gitlab/-/issues/589257), this epic covers the architecture documentation and review process to finalize the technical approach. ## Status | Status | Topic | Rev | MR | Assignee(s) | Due Date | Notes | |--------|-------|-----|----|-------------|----------|-------| | ⚠️ Blocked | System requirements | 2 | | [@jdrpereira](https://gitlab.com/jdrpereira) | | Scale projections need revisiting for multi-instance serving (https://gitlab.com/groups/gitlab-org/-/work_items/21373+) | | ⚠️ Blocked | Authentication | 2 | | [@10io](https://gitlab.com/10io) | | Cloud Connector v2 replaces JWT exchange (https://gitlab.com/groups/gitlab-org/-/work_items/21373+). High impact | | ⚠️ Blocked | Authorization | 1 | [!18717](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18717) | [@10io](https://gitlab.com/10io) | | Shadow groups/projects incompatible with GLAZ (https://gitlab.com/groups/gitlab-org/-/work_items/21373+). High impact | | ⚠️ Blocked | Frontend interactions | 1 | [!18770](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18770) | [@rchanila](https://gitlab.com/rchanila) | | Blocked by Authentication and Authorization. Frontend stays in monolith | | ⚠️ Blocked | Inter-service communication | 1 | [!18912](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18912) | [@10io](https://gitlab.com/10io) | | Split from [!18458](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18458). Blocked by Authentication/Authorization and deployment model (https://gitlab.com/groups/gitlab-org/-/work_items/21373+) | | ⚠️ Blocked | Usage billing and metering | 1 | [#590370](https://gitlab.com/gitlab-org/gitlab/-/issues/590370) | @jdrpereira | | Blocked by https://gitlab.com/gitlab-org/gitlab/-/work_items/591904+ and https://gitlab.com/groups/gitlab-org/-/work_items/21051+. This ADR will also require incremental changes to DB and API ADRs to accommodate the required mechanics efficiently. | | 🔄 In Review | Artifact delivery mode | 1 | [!19519](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/19519) | [@jdrpereira](https://gitlab.com/jdrpereira) | | | | ✅ Complete | Data reconciliation feature timing | 1 | [!18961](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18961) | [@hswimelar](https://gitlab.com/hswimelar) | 26-Mar-2026 | | | ✅ Complete | Database schema | 1 | [!18456](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18456) | [@dmeshcharakou](https://gitlab.com/dmeshcharakou) | 26-Mar-2026 | | | ✅ Complete | Anchor point | 1 | [!17524](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/17524) | [@10io](https://gitlab.com/10io), [@jdrpereira](https://gitlab.com/jdrpereira) | | | | ✅ Complete | Storage deduplication | 1 | [!17524](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/17524) | [@10io](https://gitlab.com/10io), [@jdrpereira](https://gitlab.com/jdrpereira) | | | | ✅ Complete | System requirements | 1 | [!17524](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/17524) | [@10io](https://gitlab.com/10io), [@jdrpereira](https://gitlab.com/jdrpereira) | | | | ✅ Complete | Technology stack | 1 | [!18455](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18455) | [@10io](https://gitlab.com/10io), [@jdrpereira](https://gitlab.com/jdrpereira) | 2-Mar-2026 | | | ✅ Complete | Data retention | 1 | [!18459](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18459) | [@jdrpereira](https://gitlab.com/jdrpereira) | 6-Mar-2026 | | | ✅ Complete | Organization ID/path decoupling | 1 | [!18808](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18808) | [@jdrpereira](https://gitlab.com/jdrpereira) | | Strengthened by https://gitlab.com/groups/gitlab-org/-/work_items/21373+ (slug uniqueness now global) | | ✅ Complete | Authentication | 1 | [!18462](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18462) | [@10io](https://gitlab.com/10io) | 19-Mar-2026 | | | ✅ Complete | REST API | 1 | [!18458](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18458) | [@10io](https://gitlab.com/10io), [@jdrpereira](https://gitlab.com/jdrpereira) | 19-Mar-2026 | API stability critical for version skew (https://gitlab.com/groups/gitlab-org/-/work_items/21373+) | | ✅ Complete | Data and application limits | 1 | [!18619](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18619) | [@dmeshcharakou](https://gitlab.com/dmeshcharakou) | 19-Mar-2026 | | | ✅ Complete | Content addressable storage | 1 | [!18457](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/18457) | [@hswimelar](https://gitlab.com/hswimelar) | 26-Mar-2026 | | ## Dependency Graph generated by Duo ```mermaid flowchart TD ARCH["✅ Architecture Blueprint (Anchor Point, Storage Deduplication) !17524"] TECH["✅ Technology Stack !18455"] RETENTION["✅ Data Retention !18459"] ORG_SLUG["✅ Org ID/Path Decoupling (Immutable Slugs) !18808"] API["✅ REST API !18458"] LIMITS["✅ Data & Application Limits !18619"] CAS["✅ Content Addressable Storage !18457 / #590366"] DATA_RECON["🔍 Data Reconciliation Feature Timing !18961"] DB["🔄 Database Schema !18456 / #590365"] SYS_REQ["⚠️ System Requirements Rev 2 !17524"] AUTHN["⚠️ Authentication Rev 2 !18462"] AUTHZ["⚠️ Authorization !18717 / #591324"] FRONTEND["⚠️ Frontend Interactions !18770 / #591887"] INTER_SVC["⚠️ Inter-Service Communication !18912 / #593540"] MULTI_REGION["⚠️ Multi-Regionality & Data Replication #590285"] BILLING["⚠️ Usage Billing & Metering #590370"] GEO_DISC["🔒 Discuss Multi-Regionality (external) #590300"] FULFILLMENT["🔒 Align with Fulfillment (external) #591904"] MODULAR["🔒 AR as Modular Feature (external) &21373"] ARCH --> TECH ARCH --> AUTHN ARCH --> API ARCH --> DB ARCH --> CAS ARCH --> SYS_REQ ARCH --> MULTI_REGION TECH --> AUTHZ AUTHN --> AUTHZ AUTHN --> FRONTEND AUTHN --> INTER_SVC AUTHZ --> FRONTEND AUTHZ --> INTER_SVC API --> FRONTEND API --> INTER_SVC ORG_SLUG --> INTER_SVC DB --> DATA_RECON RETENTION --> LIMITS GEO_DISC -->|blocks| MULTI_REGION FULFILLMENT -->|blocks| BILLING MODULAR -->|blocks| AUTHN MODULAR -->|blocks| AUTHZ MODULAR -->|blocks| SYS_REQ MODULAR -->|blocks| INTER_SVC MODULAR -->|blocks| MULTI_REGION classDef complete fill:#2d6a4f,color:#fff,stroke:#1b4332 classDef inreview fill:#1a5276,color:#fff,stroke:#0d2137 classDef inprogress fill:#1d3557,color:#fff,stroke:#0d2137 classDef blocked fill:#7f4f24,color:#fff,stroke:#582f0e classDef external fill:#6c757d,color:#fff,stroke:#495057 class ARCH,TECH,RETENTION,ORG_SLUG,API,LIMITS,CAS complete class DATA_RECON inreview class DB inprogress class SYS_REQ,AUTHN,AUTHZ,FRONTEND,INTER_SVC,MULTI_REGION,BILLING blocked class GEO_DISC,FULFILLMENT,MODULAR external ``` Prompt to update: _Look at the Status table in https://gitlab.com/groups/gitlab-org/-/work_items/20959 and the descriptions of each linked ADR issue to understand their dependencies. The table uses a Rev column to track multiple revisions of the same ADR. For the diagram, show only the highest revision per topic (i.e., if an ADR has Rev 1 Complete and Rev 2 Blocked, the diagram node should reflect the Rev 2 status). Regenerate the Mermaid dependency diagram in the "Dependency Graph generated by Duo" section, using the Status table as the authoritative source for links and statuses._ ## Related - Architecture Blueprint MR: [!17524](https://gitlab.com/gitlab-com/content-sites/handbook/-/merge_requests/17524)
epic