Integration and Merge Strategies
Patterns for integrating parallel work streams and resolving conflicts.
Integration Patterns
Pattern 1: Direct Integration
All implementers commit to the same branch; integration happens naturally.
feature/auth ← implementer-1 commits
← implementer-2 commits
← implementer-3 commitsWhen to use: Small teams (2-3), strict file ownership (no conflicts expected).
Pattern 2: Sub-Branch Integration
Each implementer works on a sub-branch; lead merges them sequentially.
feature/auth
├── feature/auth-login ← implementer-1
├── feature/auth-register ← implementer-2
└── feature/auth-tests ← implementer-3Merge order: follow dependency graph (foundation → dependent → integration).
When to use: Larger teams (4+), overlapping concerns, need for review gates.
Pattern 3: Trunk-Based with Feature Flags
All implementers commit to the main branch behind a feature flag.
main ← all implementers commit
← feature flag gates new codeWhen to use: CI/CD environments, short-lived features, continuous deployment.
Integration Verification Checklist
After all implementers complete:
- Build check: Does the code compile/bundle without errors?
- Type check: Do TypeScript/type annotations pass?
- Lint check: Does the code pass linting rules?
- Unit tests: Do all unit tests pass?
- Integration tests: Do cross-component tests pass?
- Interface verification: Do all interface contracts match their implementations?
Conflict Resolution
Prevention (Best)
- Strict file ownership eliminates most conflicts
- Interface contracts define boundaries before implementation
- Shared type files are owned by the lead and modified sequentially
Detection
- Git merge will report conflicts if they occur
- TypeScript/lint errors indicate interface mismatches
- Test failures indicate behavioral conflicts
Resolution Strategies
- Contract wins: If code doesn't match the interface contract, the code is wrong
- Lead arbitrates: The team lead decides which implementation to keep
- Tests decide: The implementation that passes tests is correct
- Merge manually: For complex conflicts, the lead merges by hand