| I don't think I'm convinced. But maybe I'm missing something ? You can't go on assuming user base won't grow. Also massive is not a quantifiable amount. There are certain thresholds that require the application to scale, and those depend on the functionality expected. If I hash passwords, but I can only hash 100 at once. If I offer integration API's that get hit more often than my actual site. Will I need to scale my monolith app for those specific cases? To say that a large application let's you focus on just dev work is a bald statement in my opinion. A large application is harder to test, harder to deploy, changes have a higher risk, risk of data leaking by mistake, very coupled, and not simple -> harder to design for -> harder to move stack. Just on boarding an engineer into a monolith app from my experience is hard.. I'm not sure how with micro services you're worried about the processes? I lost you there.. I have a quick script that spits out a microservice with basic health endpoint. I made a communication module that uses sockets and parent as a bus to communicate through. A bank offers some sort of signin application, statement generating (sent to email), some api's for payroll, and maybe an integration with a credit card where it notifies customers about any purchases made. When sign in is down, it doesn't mean you shouldn't get alerts about CC purchases, or that reports shouldn't be generated. Even when you're signed it's possible certain feature might not be active. With a mono if a bug took down the application every service you offer is down. --- This scenario is very much around the kind of service we want to provide. |
The number of developers today who assume their user base will grow, and optimise for that, when it's not required, far exceeds the number who assume their user base won't grow, and have growing pains because of it.
> If I hash passwords, but I can only hash 100 at once
What do you mean if? Why would you ever not hash passwords?
Also, this is exactly what horizontal scaling is for, which you need to deal with regardless of whether you're using micro services or not.
> A bank offers some
first off - you're still comparing yourself to a massively different field. If you are working for a bank, you shouldn't be asking for this type of advice, unless you've lied to them about your skills.
secondly - those things you described are all different applications within a bank. There may be some integration but more likely the common point for them all is a massive mainframe system that they all interact with. That is not micro services.