The central idea of building Microservices architecture is to split functionality into cohesive verticals which aim to solve specific issue in the domain. Microservices architectures are driven by the domain problem and not by the technology it uses. As such it might be challenging to split your monolith application because it requires complete rethinking of the architecture and the domains that are involved. Architectural Complexity needs to first be addressed. For Microservices, architectural complexity comes into play when it comes to interactions between individual services that implement specific domain.