From de65f5d6439df54b769a4d26a87abd25839898aa Mon Sep 17 00:00:00 2001
From: Thong Kuah <tkuah@gitlab.com>
Date: Tue, 26 Mar 2024 00:02:45 +0000
Subject: [PATCH] Add FAQ for cluster-wide feature for Cells 1.0

Many groups ask for about this, so offer some guidance on what to
expect, and what to do.
---
 doc/architecture/blueprints/cells/index.md    |  7 ++++--
 .../blueprints/cells/iterations/cells-1.0.md  | 24 +++++++++++++++++++
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/doc/architecture/blueprints/cells/index.md b/doc/architecture/blueprints/cells/index.md
index 76cae6a906e78..12d9bb7ca1a74 100644
--- a/doc/architecture/blueprints/cells/index.md
+++ b/doc/architecture/blueprints/cells/index.md
@@ -365,8 +365,11 @@ Cluster-wide features are strongly discouraged because:
 - They might require implementation of non-trivial [data aggregation](goals.md#aggregation-of-cluster-wide-data) that reduces resilience to [single node failure](goals.md#high-resilience-to-a-single-cell-failure).
 - They are harder to build due to the need of being able to run [mixed deployments](goals.md#cells-running-in-mixed-deployments). Cluster-wide features need to take this into account.
 - They might affect our ability to provide an [on-premise like experience on GitLab.com](goals.md#on-premise-like-experience).
-- Some features that are expected to be cluster-wide might in fact be better implemented using federation techniques that use trusted intra-cluster communication using the same user identity. User Profile is shared across the cluster.
-- The Cells architecture limits what services can be considered cluster-wide. Services that might initially be cluster-wide are still expected to be split in the future to achieve full service isolation. No feature should be built to depend on such a service (like Elasticsearch).
+- Some features that are expected to be cluster-wide might in fact be better implemented using aggregation techniques that use trusted intra-cluster communication using the same user identity.
+  For example, user Profile is shared across the cluster.
+- The Cells architecture limits what services can be considered cluster-wide.
+  Services that might initially be cluster-wide are still expected to be split in the future to achieve full service isolation.
+  No feature should be built to depend on such a service (like Elasticsearch).
 
 ### Will Cells use the [reference architecture for 50,000 users](../../../administration/reference_architectures/50k_users.md)?
 
diff --git a/doc/architecture/blueprints/cells/iterations/cells-1.0.md b/doc/architecture/blueprints/cells/iterations/cells-1.0.md
index 244756905ddae..4db3ce8314e47 100644
--- a/doc/architecture/blueprints/cells/iterations/cells-1.0.md
+++ b/doc/architecture/blueprints/cells/iterations/cells-1.0.md
@@ -702,3 +702,27 @@ The table below is a comparison between the existing GitLab.com features, and no
    - Geo is per-Cell.
    - Routing Service can direct to Geo replica of the Cell (if it knows it).
    - We might have many routing services in many regions.
+
+1. Are cluster-wide tables available to all cells?
+
+   No, cluster-wide tables are stored in a Cell-local database. However, we will
+   determine synchronization of cluster-wide tables on a case by case basis.
+
+1. How can I adapt a feature to be compatible with Cells?
+
+   Many groups have questions about how to adapt a feature for Cell.
+   This especially applies if a feature is available at the instance level, or
+   can be used across groups.
+
+   Here are some strategies for evolving a thing for Cells 1.0:
+
+   - Leave the feature unchanged.
+     For example, admins / users will have to create an account per cell.
+   - Disable the feature for Cells 1.0.
+   - For critical cases, move the feature to cluster-wide level.
+     For example, users can sign in at a single location, `https://gitlab.com/users/sign_in`.
+
+   In many cases, it is not yet necessary to re-implement an instance-wide feature
+   to work on a cluster-wide level. This is because for Cells 1.0, the net
+   effect of only allowing private visibility and new users mean that we can
+   defer this until Cells 1.5.
-- 
GitLab