I arrived in a project and they have 2 instances of a microservice. Each instance running in a 16gb RAM + 4 CPU setup in AWS (using Kubernetes), horizontally scalling up to 4 - 6 instances at peak days, but normally, 2 instances are enough to deal with the throughput at most times.
I didn't saw any problem with this setup, but one of the architects said that this cannot be considered a microservice anymore. I asked "Why? Does it deal with multiple business contexts? Is it tighly coupled to any other applications?". He answered "No, it's because it runs in a big machine". That's the only reason he gave me and it sounded really strange to me at first.
I've gone through the monitoring of these microservices and found that it receives a huge amount of requests per second. And some of the operations take sometime (1 - 3 seconds) to run.
Ok, I did understood his point -- sometimes, when using big machines, maybe you're having resources wasted, because the actual throughtput is not even close to the potential of the machine, but, as far as I can see, this is not the case with this microservice as it deals with huge amounts of requests per second.
Does this kind of constraint exists in the microservices architecture? In my opinion, it really depends on the scenario. If the machines have their potential wasted, then it may be better to reduce the size of the machine and do horizontal scale when needed. If the machines don't have their potential wasted, then having a large machine is okay.
(And bear with me, but I don't even think that 16GB + 4CPUs is such big machine as he said)
What are your thoughts on it?