Building Microservices in Java: Examples & Best Practices