Merge Protocells content into Cells, and drop Cells 1.0/1.5/2.0

Why is this change being made?

We were maintaining four Cells design pages (Cells 1.0, 1.5, 2.0, Protocells) that describe one architecture. Protocells replaced the numbered iterations, so this merges the Protocells page into cells/_index.md as a ## Protocells section and deletes the three iteration pages. Old URLs redirect to cells/.

Protocells content is moved as-is. Deduplicating it against the rest of cells/_index.md and goals.md is a separate MR: !21007 (merged)

What was dropped from cells-1.0.md and why

Section by section:

  • Preamble, Pros, Cons, Phases: 1.0-specific scope cuts and rollout tracking. Nothing to carry forward.
  • Proposal, Problems, GitLab Configuration, Topology Service: covered in current form by topology_service.md and routable_tokens.md.
  • Features not supported on Cells: the table assumed private-only, single-org users. Dropped. A few rows describe routing constraints that still apply, see review thread.
  • Questions: 30 FAQ items. Two migrated to the cells/_index.md FAQ (onboarding, login). Sixteen superseded by dedicated pages. Twelve dropped as empty or 1.0-only.
Per-question disposition

Audit of cells-1.0.md's ~30 questions (done, with sign-off per item). Numbering matches the order the questions appear in cells-1.0.md.

Migrated into cells/_index.md's existing FAQ section:

# Question Disposition
1 How will we onboard users to an Organization on additional Cells? Migrated as-is, flagged with a note that it's carried over unvalidated from Cells 1.0 and needs Product input
3 How would users log in? Migrated as-is (UI/SAML org-scoped login, dynamic routing)

Dropped superseded by a dedicated, more current doc:

# Question Superseded by
4 Adding a new table needing sequence topology_service.md Sequence Service
5 Container Registry cluster-wide/cell-local container_registry_routing_service.md
7 Static secret vs JWT for internal endpoint mutual_authentication_between_cell_services.md
8 SSH cloning ssh_routing_service.md
10 Sync cluster-wide tables (settings, broadcast) proposal-admin_area_setting_sychronization_in_cells.md
13 Secret generation scheme routable_tokens.md (actual current token format)
15 Data migration between Cells organization-data-migration/_index.md
17 Sync users across Cells topology_service.md Metadata Service
18 How Cell finds users/projects topology_service.md Classify Service
20 Topology Service resiliency topology_service.md DR/backup sections
21 Instance-wide CI runners on new cells impacted_features/ci-runners.md (was "TBD", no real content)
23 Feature flags cell-local/cluster-wide infrastructure/feature_flags.md (was "TBD", no real content)
24 Cells 1.0 vs Dedicated diff cells/_index.md's own FAQ, same question
28 Geo support disaster_recovery.md (ADR-006, ADR-024)
29 Cluster-wide tables available to all cells duplicate of #10 (closed) within the same doc
30 How to adapt a feature for Cells cells/_index.md's own FAQ, same heading verbatim

Dropped no real content, or purely a 1.0-scope-cut rationale with nothing to preserve:

# Question Reason
2 Register new users for existing Org on an additional Cell Generic invite-flow description, not Cells-specific insight
11 How do we dogfood this work? "To be defined"
12 How do we manage admin accounts? Speculative, no real answer given
16 Is secret-based routing a problem? "To be determined"
19 Would User Profile be public for enterprise customer? Premise depends on #25 (closed)'s private-org-only model, which is itself dropped as an obsolete 1.0 scope cut
25 Why is Organization private-only in Cells 1.0? Obsolete 1.0-specific scope cut; Protocells doesn't carry this restriction

Dropped after further review looked like migration candidates on first pass, decided not worth preserving outside git history:

# Question Would-be target
6 GitLab Pages discussion (two alternative proposals w/ pros & cons) impacted_features/gitlab-pages.md
9 Cluster-wide unique constraints list (authorized keys, GPG keys, custom emails, pages domains) topology_service.md Claim Service section
14 Why secrets-based routing instead of path-based routing? http_routing_service.md FAQ
22 Why not use FQDN instead? http_routing_service.md FAQ (duplicate of #27 (closed) within the same doc)
26 Why not prefix all endpoints with relative_path? http_routing_service.md FAQ
27 Why not use subdomains, like mycorp.gitlab.com? http_routing_service.md FAQ

Author and Reviewer Checklist

Please verify the check list and ensure to tick them off before the MR is merged.

  • Provided a concise title for this Merge Request (MR)
  • Added a description to this MR explaining the reasons for the proposed change, per say why, not just what
    • Copy/paste the Slack conversation to document it for later, or upload screenshots. Verify that no confidential data is added, and the content is SAFE
  • Assign reviewers for this MR to the correct
    • The when to get approval handbook section explains when DRI approval is required
    • The who can approve handbook section explains how to identify the DRI
    • If the MR does not require DRI approval, consider asking someone on your team, such as your manager.
    • The approver may merge the MR. If they approve but don't merge, you can merge.
  • For transparency, share this MR with the audience that will be impacted.
    • Team: For changes that affect your direct team, share in your group Slack channel
    • Department: If the update affects your department, share the MR in your department Slack channel
    • Division: If the update affects your division, share the MR in your division Slack channel
    • Company: If the update affects all (or the majority of) GitLab team members, post an update in #whats-happening-at-gitlab linking to this MR

Commits

  • Merge Protocells content into cells/_index.md

Replace the "Cells Iterations" section (a single bullet pointing to the Protocells epic) with the full Protocells design content, demoted one heading level and nested under a new "## Protocells" section placed between "Goals" and "Architecture overview": Summary, Motivation with Goals/Non-Goals, the Proposal diagram and three pillars, Design and Implementation Details, Feature Parity, and Alternative Solutions.

Relative links carried over unchanged, since protocells/_index.md and cells/_index.md are siblings under design-documents/. Links that pointed back to cells/_index.md itself (now a self-reference) were either dropped or reworded to reference the surrounding document. Added the remaining Protocells-only links (Organization Design Document, Organization Isolation, Organization ADR, Protocells Working Epic) to the existing Links section.

Also merged front matter: added @sxuereb to authors, and added @tkuah to coaches while dropping @sxuereb from coaches since they're no longer at GitLab.

Delete protocells/_index.md, now merged into cells/_index.md

Its content was merged into cells/_index.md's new "## Protocells" section in the previous commit, and nothing in the repo links to this page anymore. Add an alias on cells/_index.md so the old /handbook/engineering/architecture/design-documents/protocells/ URL redirects to it.

  • Delete Cells 1.0/1.5/2.0 iteration pages, superseded by Protocells

Dissolves cells/iterations/cells-1.0.md, cells-1.5.md, and cells-2.0.md. All still-relevant content was already migrated or confirmed superseded, and inbound links were retargeted in earlier commits. Adds aliases from the three old URLs to cells/_index.md, and removes the now dead "Cells Iterations" bullets referencing them (full rewrite of that section lands separately when Protocells is merged in).

Add aliases and drop dead iteration links from cells/_index.md

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com


Edited by Michael Kozono

Merge request reports

Loading
Loading