Git Advanced: Monorepo, Submodules & Workflows · Aula

Monorepo ou polyrepo: escolhendo uma abordagem

Avalie os compromissos reais entre um único monorepo e vários polyrepos para escolher a estratégia adequada à sua equipe e à sua base de código.

Aula 4 de 413 etapas

Monorepo ou polyrepo: escolhendo uma abordagem é uma aula grátis de Git Advanced: Monorepo, Submodules & Workflows no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Git Advanced: Monorepo, Submodules & Workflows, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Git Advanced: Monorepo, Submodules & Workflows inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Two Philosophies

There are two ways to organize code across many projects:

  • Monorepo — all projects in one repository
  • Polyrepo — each project in its own repository

Neither is universally right; the choice depends on team size, coupling, and tooling.

What Polyrepo Looks Like

In polyrepo each service or library has its own repo, history, and release cycle. Teams own their repos independently.

github.com/org/auth-service
github.com/org/billing-service
github.com/org/shared-utils

What Monorepo Looks Like

A monorepo holds everything under one root, with directories per project sharing one history and one set of tooling.

repo/
  apps/auth-service/
  apps/billing-service/
  libs/shared-utils/

Monorepo Advantages

Strengths of a monorepo:

  • Atomic changes across projects in one commit
  • Single source of truth for shared code
  • Easier large-scale refactoring
  • Unified tooling and CI configuration

Monorepo Challenges

Costs to plan for:

  • Repository can grow very large
  • CI must be smart to build only affected projects
  • Access control is coarser by default
  • Tooling investment is required up front

Polyrepo Advantages

Strengths of polyrepo:

  • Clear ownership boundaries
  • Smaller, faster clones and CI per repo
  • Independent release cadence
  • Fine-grained access control

Polyrepo Challenges

Costs of polyrepo:

  • Cross-repo changes need coordinated PRs
  • Shared code drifts across versions
  • Dependency upgrades fragment
  • Discovery and consistency are harder

The Diamond Dependency Problem

In polyrepos, two services depending on different versions of a shared lib causes painful conflicts. Monorepos avoid this with a single, always-current version of shared code.

Team Size and Coupling

A rule of thumb:

  • Tightly coupled projects that change together favor a monorepo
  • Loosely coupled, independently shipped services tolerate polyrepo well

Hybrid Approaches

Many organizations mix both: a monorepo per domain or team, with separate repos for clearly independent products. The boundary should follow how code actually changes together.

Migration Considerations

Moving polyrepos into a monorepo is doable while preserving history (e.g. with git subtree or import tools), but commit to the tooling investment first — it is the deciding factor.

git subtree add --prefix=apps/auth auth-remote main

Quick Check

Test your understanding of the trade-offs.

Recap

You can now reason about repository strategy:

  • Monorepo: atomic changes, shared code, unified tooling — at the cost of scale and CI complexity
  • Polyrepo: clear ownership and independence — at the cost of cross-repo coordination and version drift
  • Coupling and team structure drive the choice; hybrids are common

This sets up the monorepo structure and tooling lessons that follow.

Grátis para começar

Aprenda Git Advanced: Monorepo, Submodules & Workflows com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
12
Aulas
48

Perguntas Frequentes

A aula “Monorepo ou polyrepo: escolhendo uma abordagem” é grátis?

Sim — o texto completo de “Monorepo ou polyrepo: escolhendo uma abordagem” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Git Advanced: Monorepo, Submodules & Workflows, atualize para CoddyKit PRO. O curso de Git Advanced: Monorepo, Submodules & Workflows inclui 4 aulas no total.

O que vou aprender em “Monorepo ou polyrepo: escolhendo uma abordagem”?

Avalie os compromissos reais entre um único monorepo e vários polyrepos para escolher a estratégia adequada à sua equipe e à sua base de código. Você pratica Git Advanced: Monorepo, Submodules & Workflows com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Git Advanced: Monorepo, Submodules & Workflows?

Nenhuma experiência prévia é necessária. Git Advanced: Monorepo, Submodules & Workflows no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Monorepo ou polyrepo: escolhendo uma abordagem”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Git Advanced: Monorepo, Submodules & Workflows?

Sim. Cada aula de Git Advanced: Monorepo, Submodules & Workflows inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que é um Monorepo
  2. Estrutura e Organização de um Monorepo
  3. Introdução às Ferramentas de Monorepo
  4. Monorepo ou polyrepo: escolhendo uma abordagem
← Voltar para Git Advanced: Monorepo, Submodules & Workflows