The biggest mistake I see when building enterprise systems: going microservices before you need to. Microservices are a powerful tool, but they bring complexity.
Before you move, ask: Are your domain boundaries clear? Can your team carry the complexity? Are monitoring and CI/CD ready? How will you handle data consistency? Are you ready for network latency?
Often a well-built monolith is the right start. Domain-Driven Design helps you draw the boundaries correctly — so when you do need microservices, you are ready.