Re:4 you can absolutely test and reason about modules in a monolith if you design and decouple things correctly. You are throwing a new complex and fragile architecture generalisticaly to fix sloppiness. You will have worse problems I assure you if you can not correctly modularize a plain classic application correctly, no matter how many MS you throw at it.
To clarify. I don't think microservices are a bad thing, but monoliths are many (most) of the times perfectly good.
Also, I think the middle ground is the better option. You can have services but they don't need to be micro.
To clarify. I don't think microservices are a bad thing, but monoliths are many (most) of the times perfectly good.
Also, I think the middle ground is the better option. You can have services but they don't need to be micro.