Guidelines


Database

GitLab is a single application that relies on a single data store (terminology we use in the context of stringent durability requirements, e.g., PostgreSQL as opposed to Redis).

This directive drives GitLab’s product development: while GitLab is SaaS first, it is not SaaS only. In terms of databases, GitLab supports self-managed configurations with a single database cluster, generally through the use of logical databases. Only at scale do we contemplate unfolding the single cluster into multiple ones, as GitLab.com does. This implies that the code base stays stable and can leverage flexible backend strategies to address scalability. Self-managed and GitLab.com will continue to operate as a single application, and self-managed in particular will continue to provide simplicity while offering the flexibility to scale.

Last modified December 5, 2023: Move architecture pages in to place (48b1e201)