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