GitLab Cells Development Guidelines

For background of GitLab Cells, refer to the blueprint.

Essential and additional workflows

To make the application work within the GitLab Cells architecture, we need to fix various workflows.

Here is the suggested approach:

  1. Pick a workflow to fix.
  2. Firstly, we need to find out the tables that are affected while performing the chosen workflow. As an example, in this note we have described how to figure out the list of all tables that are affected when a project is created in a group.
  3. For each table affected for the chosen workflow, choose the approriate GitLab schema.
  4. Identify all cross-joins, cross-transactions, and cross-database foreign keys for these tables. See the multiple databases guide on how to identify, and allowlist these items.
  5. Fix the cross-joins and cross-database foreign keys necessary for the workflow to work with GitLab Cells. See the multiple databases guide on how to fix these items.
  6. For the cross-joins, cross-transactions, and cross-database foreign keys that were not fixed, open and schedule issues to fix later.
  7. Confirm the fixes work by completing the workflow successfully in a local GDK running multiple cells.

Refer to following epics for examples: