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, andCommitUpdateRPCs are implemented and validated
References
- Design Doc: https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/topology_service_transactional_behavior/
- PoC: gitlab-org/cells/topology-service!308
Current Status
MRs
-
Database schema implementation → gitlab-org/cells/topology-service!373 (merged) -
Database layer for RPCs → gitlab-org/cells/topology-service!396 -
RPC implementation → gitlab-org/cells/topology-service!377