Application Scoping
I want to take a step back of the microservices vs monoliths debate. When you're trying to build gigantic systems that respond to many long-lasting business requirements, you need to scope each of the components to make them as maintainable as possible. Here are a few questions to ask yourself before adding new features to your existing application.
You should be able to upgrade the underlying technologies of your component between two iterations. For example, can you easily upgrade your Java application from 8 to 11 between two iterations (each day or a few weeks)?
Can you separate the business domain? Your new application should not have a multitude of dependencies and should have clear boundaries. If your new requirements are tightly coupled to the rest, leave them together!
Can one person hold the knowledge of the entire application? Is the system getting too big to understand for one? In that case, you should separate and assign a separate expert and define a precise interface where the two experts can understand each other without having to know the entire underlying complexity.
It is hard to get your head around all the discussions around microservices. There's a lot of contexts required to do the right call for your own needs. Please ask yourself what problems you need to resolve and how to mitigate them in your context. Please do not mindlessly apply a recipe that worked for someone else.