Monorepo không thay đổi branching strategy cơ bản nhưng tăng complexity của conflict và CI.
Recommended: trunk-based + CODEOWNERS + scoped CI
CODEOWNERS (/.github/CODEOWNERS): định nghĩa team nào review phần nào:
/apps/frontend/ @frontend-team
/apps/backend/ @backend-team
/packages/shared/ @core-teamPR chỉ require approval từ owner của file được thay đổi → teams không block nhau.
Scoped CI: chỉ chạy test của packages bị ảnh hưởng — dùng nx affected, turborepo --filter, hoặc changesets. Đừng chạy full test suite cho mọi PR.
Branch per team: mỗi team có team/frontend/feature-x namespace riêng, merge vào main thường xuyên.
Pitfall: shared packages (/packages/shared) là bottleneck — thay đổi đây require tất cả teams test. Giải pháp: versioned internal packages với changelogs, không mutate shared package mà không notify.