| name | cross-service-integration |
| description | Quick decision guide for cross-service communication patterns. For implementation details, use the backend-message-bus skill. |
| allowed-tools | Read, Grep, Glob |
Cross-Service Integration Decision Guide
For implementation details, activate the
backend-message-busskill.
Quick Decision Matrix
| Scenario | Pattern | Skill to Use |
|---|---|---|
| Sync entity data to other services | Entity Event Bus | backend-message-bus |
| Need real-time data, no local copy | Direct API Call | N/A (simple HttpClient) |
| Initial data population | Full Sync Job | backend-background-job |
| Cross-service database access | :x: NEVER DO THIS | - |
When to Use Message Bus
✅ Use Entity Event Bus when:
- Source service owns the data
- Target services need local copies
- Eventual consistency is acceptable
- Decoupling is important
❌ Don't use when:
- You need real-time, up-to-the-second data
- Data is only needed occasionally (use API call)
- You're accessing data within the same service
Key Principles
- Data Ownership: Each entity has ONE owner service
- No Shared DB: Never access another service's database directly
- Event-Driven: Use message bus for cross-service sync
- Idempotency: Consumers must handle duplicate messages
Implementation Steps
- Define data ownership
- Create message in
YourApp.Shared/CrossServiceMessages/ - Implement producer in source service
- Implement consumer in target service
- Handle dependencies and race conditions
→ See backend-message-bus skill for detailed patterns and code examples.