There is a fundamental conflict between services and data systems. Microservices are designed to encapsulate data within their inner workings, data systems are designed to expose data.
In a microservices based architecture an application is split into fragments or microservices which are separated by a network and collectively collaborate and work together to achieve the same goals as a monolithic application.
Microservices encapsulate distinct code and logic and manage their own data, they allow for easier scaling in both performance and organizational terms, and their biggest benefit, if done correctly is their capability to be deployed independently of one another.
There are several anti-patterns that can lead to microservices being coupled to each other and therefore causing them to lose their most important benefit – the ability to be deployed independently.