Discuss the considerations you would take into account when architecting a microservices-based application.