After building online mortgages website and backend systems (integrated with top UK banks) using microservices (Azure, NodeJS, Mongo, React) for the new project I picked a less ambitius stack while leveraging teams know how (Azure, NodeJS, MySQL, templated HTML). This article captures my thinking:
- Fail fast – they let development teams focus on delivering features (to prove or disprove a hypothesis) rather than a complicated microservice architecture
- It helps you to understand your requirements (UML diagrams and domain models are not perfect first time they need to evolve)
- Microservices are complicated to develop (e.g. graceful degradation, health checks, retries) and monitor
- Microservices dependencies are difficult to track