API, microservices or monolith: which architecture should you choose for your application?