Monolithic vs Microservices Architecture: Pros and Cons