Best Practices to design Microservices:
Separate data storage for each microservice.
Maintain code at a similar level of maturity.
Separate build for each microservice.
Deploy into containers.
Treat servers as stateless.
https://www.dotnettricks.com/learn/microservices/how-do-i-start-learning-microservices