The Battle of Architectures: Monolithic vs Microservices in Software Development