How to reduce circular dependencies in Microservices