https://medium.com/javarevisited/top-10-microservice-design-patterns-for-experienced-developers-f4f5f782810e