Geo discussion: Disabling replication with feature flags
For each SSF data type, replication can be disabled. https://docs.gitlab.com/ee/administration/geo/replication/datatypes.html#enable-or-disable-replication-for-some-data-types
- package files
- terraform states
- merge request diffs
- snippet repositories
It's managed with feature flags. There is an issue to disable replication per data type in the UI #215475 (closed).
The intent of defaulting the feature flags on and keeping the code around was to have a way to mitigate an emergency while we continue to work on quickly changing code. That was ok, but a recent focus on development feature flags indicate that we should avoid keeping these feature flags around.
There is a requirement to document all feature flags. So the feature flags are exposed to customers, which:
- Is poor UX
- Makes things difficult to change (which is against the point of feature flags)
- If we change what a feature flag does, then it impacts customers
- If we change a feature flag name, then it impacts customers
- If we remove a feature flag, then it impacts customers
- If we implement replication disabling in UI, instead of in feature flags, then it impacts customers (do we need to migrate the feature flag settings to the UI settings?)
- Adds more docs maintenance work
At this point, I suppose the original intent of the feature flags doesn't matter, because since the flags are documented, people refer to them for customers looking for an easy way to reduce bandwidth and storage needs.