What are the trade-offs between different architectural patterns, such as monolithic vs. microservices?