Skip to content

Split application into functional parts to ensure that only needed code is loaded with all dependencies

Currently we run GitLab in multiple contexts:

  • Web API
  • Web ActionCable
  • Web Controllers
  • Sidekiq (and various different jobs)
  • Sidekiq Cluster

Probably this kind of split is hard, but it appears that we could provide a better code architecture that would allow to split on this major line:

  • Web: API/ActionCable/Controllers
  • Sidekiq/Cluster

For example:

  • Web: likely would not require Sidekiq Workers and all dependent services
  • Sidekiq: likely would not require any API/ActionCable/Controllers/GraphQL and app dependencies to run
Edited by Craig Gomes