Lack of team alignment
A general rule of microservices is that one team must be aligned or made responsible for a microservice. Ideally, this will be one team per service, but this is not always possible due to limited resources. However, a team can have responsibilities for multiple services, which is common. One team may be responsible for multiple services, but a service should never have multiple teams working on it. One team must have responsibility for the analysis, development, and deployment of a service.
As with most rules, there are exceptions, and there are some rare cases where this may not be possible and where we may need two teams to share responsibility for a service, and teams will have to work together and share responsibility for a service due to organizational or other constraints. DDD calls this a shared kernel, and this requires a high level of communication between the teams sharing the service. We will explore shared kernels in depth later on in the DDD...