We follow the GitLab architecture guide and practices and discuss architecture matters in
#s_fulfillment_architecture on Slack.
Customers Dot allows customers to upgrade subscriptions by adding more seats and add/edit payment records. Our customers see the front end of this system as the Customer Portal at https://customers.gitlab.com/. Certain purchase flows have been migrated to https://gitlab.com/ and utilise CustomersDot as an API. This work will continue until the Customer Portal front end is deprecated.
Development documentation is available in the repository.
LicenseDot manages license creation via API or manually in the UX and communicates with CustomersDot to send licenses via email. The Front end for managing this system is at https://license.gitlab.com/.
Zuora is our subscription management and billing system, primarily managed by our Finance team. It is the single source of truth for subscriptions and SKUs and it generates invoices for customers. Other systems like LicenseDot and CustomersDot should use the Zuora API instead of storing it themselves. More information on the Zuora Object Model is in Zuora's Knowledge Center.
Stripe is our payment gateway. It processes payments and communicates with CustomersDot indirectly via Zuora.
GitLab is our complete DevOps platform, delivered as a single application. Acts as a frontend of and communicates with CustomersDot via an API.