I agree on the point you’re making, but you have to consider why you’re breaking up the existing monolith in the first place. I would argue the biggest advantage of doing so is to make the whole development team more efficient, having different teams revolving around different microservices. The money saved by having a more efficient development team can very easily outweigh the cost of the additional physical resources needed. It is also more cost-effective than rewriting the whole codebase in Go. If your team is not going to be more efficient after splitting the monolith, keep the monolith!