The four main drivers for granularity integration are as follows:
- Database transactions: Is an ACID transaction required between separate services?
- Workflow and choreography: Do services need to talk to one another?
- Shared code: Do services need to share code among one another?
- Database relationships: Although a service can be broken apart, can the data it uses be broken apart as well?