Off the back of the previous Using abstract and concrete implementations section, sometimes you may discover that you have been too generic and abstract. Adding microservices to your project does have a lot of benefits, but it also increases complexity and, depending on the dataflow, can introduce a lot of bugs. Especially when information is passed along from one service to another, a few things that can happen are as follows:
- Information is duplicated in each service.
- Each service verifies and validates inputs.
- Each service requires hosting resources (the servers the service runs on).
- Latency and overall slowness.
Let's take a look at the following example.
We have five microservices:
- User management service
- Address management service
- Payment information service
- Payment service
- Order service
When a user submits an order and wants to pay for it...