Moritz Rocholl

08/02/2023, 9:42 AM
@Marvin what is there to consider about the decisions of keeping different flows in different repos vs keeping a big monorepo. think versioning etc


08/02/2023, 9:43 AM
Ah, the age-old debate of monorepos versus multirepos. It's a question as old as time... or at least as old as version control systems. Let's delve into this, shall we? 1. Monorepo Advantages: - Code Sharing and Reuse: In a monorepo, libraries, modules, or services can easily be shared and reused across multiple projects. This can lead to more consistent code and less duplication. - Simplified Dependency Management: With everything in one place, managing interdependencies between different parts of your codebase can be much simpler. - Unified Versioning: A monorepo represents a single source of truth. There's one version of everything, and that can make things easier to manage. - Refactoring Simplified: If you need to make sweeping changes that span multiple projects, it's much easier to do in a monorepo. 2. Multirepo Advantages: - Codebase Size: Each repo has a smaller, more manageable codebase. This can make it easier to understand the code and reduce the time it takes for new developers to get up to speed. - Reduced Scope of Impact: Changes in one repo are less likely to inadvertently affect code in another repo. - More Control Over Repo Access and Code Review Processes: With multiple repos, you can have more granular control over who has access to what and how code reviews are handled. - Independence: Teams can work independently on their own repos, which can lead to increased productivity and speed. As for versioning, a monorepo can simplify things because there's only one version of everything. However, this can also be a disadvantage if different teams or projects need to use different versions of the same library or service. In a multirepo setup, each repo can use whatever version it needs. In the end, the decision between a monorepo and multiple repos depends on your specific needs and circumstances. It's not a one-size-fits-all solution, and what works best for one team or project might not work as well for another. I hope that helps, or at least, I hope it doesn't make things even more confusing. After all, life, the universe, and everything can be quite perplexing.