GitScrum / Docs
All Best Practices

Microservices Development | Multi-Team Coordination

Microservices development requires cross-team coordination. GitScrum tracks service dependencies, API contracts, and deployment orchestration across multiple teams.

5 min read

Microservices architectures require coordinating multiple teams working on independent services with complex interdependencies. GitScrum's cross-project dependencies, API contract tracking, and multi-team visibility features help organizations manage the complexity inherent in distributed systems development.

Microservices Project Challenges

ChallengeImpactSolution
Service dependenciesBlocked workDependency mapping
API breaking changesIntegration failuresContract testing
Deployment coordinationOutagesDeployment orchestration
Cross-team featuresCommunication overheadShared epics
Service ownershipUnclear responsibilityClear ownership model

Project Organization

MICROSERVICES PROJECT STRUCTURE

Option 1: Project per Service
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ User Serviceβ”‚  β”‚Order Serviceβ”‚  β”‚ Payment  β”‚ β”‚
β”‚  β”‚  Project    β”‚  β”‚  Project    β”‚  β”‚ Service  β”‚ β”‚
β”‚  β”‚             β”‚  β”‚             β”‚  β”‚ Project  β”‚ β”‚
β”‚  β”‚ Team: Auth  β”‚  β”‚ Team: Ordersβ”‚  β”‚ Team: Payβ”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                                 β”‚
β”‚  Cross-Project Epic: "Mobile Checkout Feature" β”‚
β”‚  └── Tasks distributed to each service project  β”‚
β”‚                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Option 2: Project per Domain
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚ E-Commerce Platform                     β”‚    β”‚
β”‚  β”‚                                         β”‚    β”‚
β”‚  β”‚ Swimlanes by Service:                   β”‚    β”‚
β”‚  β”‚ β”œβ”€β”€ User Service                        β”‚    β”‚
β”‚  β”‚ β”œβ”€β”€ Order Service                       β”‚    β”‚
β”‚  β”‚ β”œβ”€β”€ Payment Service                     β”‚    β”‚
β”‚  β”‚ └── Notification Service                β”‚    β”‚
β”‚  β”‚                                         β”‚    β”‚
β”‚  β”‚ Labels: [user-svc] [order-svc] [payment]β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚                                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Dependency Mapping

CROSS-SERVICE DEPENDENCY TRACKING

FEATURE: Add Express Checkout

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Epic: Express Checkout                         β”‚
β”‚                                                 β”‚
β”‚  Dependencies (sequence matters):               β”‚
β”‚                                                 β”‚
β”‚  Sprint N:                                      β”‚
β”‚  └── [API Design] Payment API contract          β”‚
β”‚      └── [API Design] Order API contract        β”‚
β”‚                                                 β”‚
β”‚  Sprint N+1:                                    β”‚
β”‚  β”œβ”€β”€ [User Service] Saved payment methods       β”‚
β”‚  └── [Payment Service] Tokenization endpoint    β”‚
β”‚      └── Depends on: API Design complete        β”‚
β”‚                                                 β”‚
β”‚  Sprint N+2:                                    β”‚
β”‚  β”œβ”€β”€ [Order Service] Express checkout flow      β”‚
β”‚  β”‚   └── Depends on: Payment tokenization       β”‚
β”‚  └── [Frontend] Checkout UI                     β”‚
β”‚      └── Depends on: Order Service API          β”‚
β”‚                                                 β”‚
β”‚  Sprint N+3:                                    β”‚
β”‚  └── [Integration] End-to-end testing           β”‚
β”‚      └── Depends on: All services complete      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

API Contract Management

API CONTRACT WORKFLOW

1. DESIGN PHASE
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Task: Design Payment Tokenization API          β”‚
β”‚                                                 β”‚
β”‚  Deliverables:                                  β”‚
β”‚  ☐ OpenAPI spec in shared repo                  β”‚
β”‚  ☐ Review with consuming teams                  β”‚
β”‚  ☐ Contract tests defined                       β”‚
β”‚  ☐ Breaking change assessment                   β”‚
β”‚                                                 β”‚
β”‚  Reviewers: Order Service, Frontend teams       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

2. IMPLEMENTATION PHASE
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Producer Task: Implement Payment API           β”‚
β”‚  β”œβ”€β”€ Implement endpoints per spec               β”‚
β”‚  β”œβ”€β”€ Run contract tests                         β”‚
β”‚  └── Deploy to staging                          β”‚
β”‚                                                 β”‚
β”‚  Consumer Task: Integrate with Payment API      β”‚
β”‚  β”œβ”€β”€ Blocked until: API in staging              β”‚
β”‚  β”œβ”€β”€ Implement client                           β”‚
β”‚  └── Run integration tests                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

3. BREAKING CHANGE PROTOCOL
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  If breaking change needed:                     β”‚
β”‚                                                 β”‚
β”‚  Step 1: Announce in #api-changes channel       β”‚
β”‚  Step 2: Create migration task for consumers    β”‚
β”‚  Step 3: Version the API (v1 β†’ v2)              β”‚
β”‚  Step 4: Support both versions during migration β”‚
β”‚  Step 5: Deprecate old version with deadline    β”‚
β”‚  Step 6: Remove old version after deadline      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Deployment Coordination

MULTI-SERVICE DEPLOYMENT

DEPLOYMENT CHECKLIST FOR FEATURE X:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                 β”‚
β”‚  Pre-Deployment:                                β”‚
β”‚  ☐ All services passing tests                   β”‚
β”‚  ☐ Contract tests green                         β”‚
β”‚  ☐ Database migrations ready                    β”‚
β”‚  ☐ Feature flags in place                       β”‚
β”‚  ☐ Rollback procedures documented               β”‚
β”‚                                                 β”‚
β”‚  Deployment Order (sequence required):          β”‚
β”‚  1. ☐ Database migrations (all services)        β”‚
β”‚  2. ☐ Payment Service v2.3.0                    β”‚
β”‚  3. ☐ Order Service v1.8.0                      β”‚
β”‚  4. ☐ User Service v3.1.0                       β”‚
β”‚  5. ☐ Frontend v4.2.0                           β”‚
β”‚  6. ☐ Enable feature flag: express-checkout     β”‚
β”‚                                                 β”‚
β”‚  Post-Deployment:                               β”‚
β”‚  ☐ Smoke tests passing                          β”‚
β”‚  ☐ Monitoring dashboards green                  β”‚
β”‚  ☐ Error rates normal                           β”‚
β”‚  ☐ Notify stakeholders                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Best Practices

  • Clear service ownership with documented responsibilities
  • API-first design before implementation
  • Contract testing for all service interactions
  • Dependency visibility in project management
  • Coordinated deployment with clear sequencing
  • Feature flags for cross-service features
  • Shared monitoring across services
  • Regular cross-team sync for dependent work
  • Anti-Patterns

    βœ— Services developed in isolation
    βœ— Breaking API changes without notice
    βœ— No contract testing
    βœ— Unclear service ownership
    βœ— Monolithic deployment of microservices
    βœ— No cross-team visibility
    

    Related Solutions