![]() Deep coupling makes application harder to develop in longer term, as it leads to a spaghetti implementation.A single big monolithĬodebase without clear boundaries results in a number of problems and inefficiencies, some of them being: Today the usage of monolith proves to be challenging in many cases. Challenges of the Monolith (a current state) ![]() The blueprint aims to retain all key aspects of GitLab success: single and monolithic codebase (with a single data-store),īut allows us to better model application and make our codebase more composable. The Rails EnginesĪllowed us to well describe the individual components with its dependencies and run an application Implementing separate gems in a single repository. The actual split was tested with the usage of Rails Engines This model could be implemented to provide an API interface for external tooling (Runners API, Packages API, Feature Flags Unleash API)Īnd allow us to have much better resiliency and much easier way to scale application in the future. These aspects could be treatedĪs components that are run separately from the rest of the stack, but still sharing a large portion of core. The proposal itself does allow us to disconnect some aspects of the features. Run only a given feature separate to the rest application (like CI) due to coupling. (CI for example has Web interface, uses API, and performs background processing), and we are not able to easily This follows the idea that a single feature needs to run in many different ways This discusses the positive and negative outcomes of the proposed solution and tries to estimate the impactĪpplication Layers tries to split GitLab Rails codebase horizontally following the pattern of how we actually This blueprint discusses an impact of introducing Application Layers as a way to reduce and improve the applicationĬodebase. ![]() The more code being added results in not only ever increasing resource requirementsįor running the application, but increased application coupling and explosion of the complexity. The one of the major risks of a single codebase is an infinite growth of the wholeĪpplication. Issues and Merge Requests Composable GitLab Codebaseĭue to our focus on improving the overall availability of and reducing tech debt, we do not have capacity to act on this blueprint.Implementation details for proposed solution.Application Layers for on-premise installations.The Application Layers ( *horizontal split).Current state of Bounded Contexts ( vertical split).Challenges of the Monolith (a current state).Status Authors Coach DRIs Owning Stage Created proposed devops non_devops The development, release, and timing of any products, features, or functionality remain at the Please do not rely on this information for purchasing or planning purposes.Īs with all projects, the items mentioned on this page are subject to change or delay. It is important to note that the information presented is for informational purposes only. This page contains information related to upcoming products, features, and functionality.
0 Comments
Leave a Reply. |