Skip to content

Topology Service Transactional Behaviour for Claiming unique attributes

Overview

As part of Protocells (gitlab-com/gl-infra&1616), we are transitioning to a distributed cluster of GitLab instances.

In this distributed cell architecture, we require a coordination mechanism to ensure uniqueness and routing capabilities, allowing each project and user to be directed to the correct cell and exist only once across the cluster.

The Topology Service serves as the global coordination layer, providing the data infrastructure that enables this coordination between cells.

Goal

The transactional behavior for Topology Service has been documented in the design document: https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/topology_service_transactional_behavior/

This issue tracks the implementation of all required RPCs in Topology Service to enable this transactional behavior.

Exit Criteria

  • Database schema is finalized and deployed to the Production Spanner instance
  • BeginUpdate, RollbackUpdate, and CommitUpdate RPCs are implemented and validated

References

Current Status

MRs

  1. Database schema implementation → gitlab-org/cells/topology-service!373 (merged)
  2. Database layer for RPCs → gitlab-org/cells/topology-service!396
  3. RPC implementation → gitlab-org/cells/topology-service!377
Edited by Tarun Khandelwal
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information