Monolith vs. Microservices: Which Architecture Should You Choose?