You don’t have to choose between monolith and microservices architectures
The microservices architecture has picked up steam. It is often favored over a monolith service to the point where people take it as an absolute winner. This shows up during interviews where candidates will say they’ll use a microservices architecture without providing a rationale and more importantly without being able to explain why when asked.
To be clear, I don’t have a problem if someone prefers microservices (or the other architecture) but as software engineers, we have to understand the pros and cons of both approaches and make sure it makes sense given context. The truth is that the right architecture mostly depends on the situation and that there’s a middle ground somewhere (you probably don’t want thousands of microservices for a small app nor do you want a monolith for a humongous business).
More interestingly though is that deciding which architecture is best suited for your case depends on non technical aspects (e.g. the expected SLA for different features/products, how your teams are organized etc.).
Two advices from there I would give to my younger self:
- Try to dig more into when and why one approach is better than the other – and assume nothing is black and white.
- Try to take a step back and factor more points of views related to the problem you are trying to solve.
What are you thoughts on these architectures? Head in the comments for more discussions!