From e3983fb7508ceb2cc06e32ae418701b43ba8b351 Mon Sep 17 00:00:00 2001
From: Sampath Ranasinghe <sranasinghe@gitlab.com>
Date: Wed, 30 Nov 2022 18:00:56 +0000
Subject: [PATCH] Add Geo support to definition of done

---
 doc/development/contributing/merge_request_workflow.md | 1 +
 doc/development/geo/framework.md                       | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/doc/development/contributing/merge_request_workflow.md b/doc/development/contributing/merge_request_workflow.md
index 247383d1f39a7..f06e88256606f 100644
--- a/doc/development/contributing/merge_request_workflow.md
+++ b/doc/development/contributing/merge_request_workflow.md
@@ -213,6 +213,7 @@ To reach the definition of done, the merge request must create no regressions an
 
 - Verified as working in production on GitLab.com.
 - Verified as working for self-managed instances.
+- Verified as supporting [Geo](../../administration/geo/index.md) via the [self-service framework](../geo/framework.md). To learn more see [here](../geo/framework.md#geo-is-a-requirement-in-the-definition-of-done).
 
 If a regression occurs, we prefer you revert the change.
 Your contribution is *incomplete* until you have made sure it meets all of these
diff --git a/doc/development/geo/framework.md b/doc/development/geo/framework.md
index 3624d280f86b9..60529db5ce64d 100644
--- a/doc/development/geo/framework.md
+++ b/doc/development/geo/framework.md
@@ -18,6 +18,14 @@ across Geo sites. This API is presented as a Ruby Domain-Specific
 Language (DSL) and aims to make it possible to replicate data with
 minimal effort of the engineer who created a data type.
 
+## Geo is a requirement in the definition of done
+
+Geo is the GitLab solution for [disaster recovery](https://about.gitlab.com/direction/geo/disaster_recovery/). A robust disaster recovery solution must replicate **all GitLab data** such that all GitLab services can be successfully restored in their entirety with minimal data loss in the event of a disaster.
+
+For this reason, Geo replication and verification support for GitLab generated data is part of the [definition of done](../contributing/merge_request_workflow.md#definition-of-done). This ensures that new features ship with Geo support and our customers are not exposed to data loss.
+
+Adding Geo support with the Self Service Framework (SSF) is easy and outlined in detail on this page for various types of data. However, for a more general guide that can help you decide if and how you need to add Geo support for a new GitLab feature, [you may start here](../geo.md#ensuring-a-new-feature-has-geo-support).
+
 ## Nomenclature
 
 Before digging into the API, developers need to know some Geo-specific
-- 
GitLab