«Как перейти на микросервисы» нужен очень очень длинный ответ, который может быть книгой. Однако я могу дать вам несколько указаний, которые могут вам помочь.
Прежде всего, вы можете использовать подход DDD, чтобы помочь вам правильно определить ограниченный контекст вашего приложения. В идеальной ситуации каждый домен должен соответствовать ограниченному контексту. Таким образом, вы можете разделить по ограниченному контексту. Каждый ограниченный контекст может иметь один или несколько микросервисов, но микросервис не должен быть больше ограниченного контекста. Из того, что я вижу, ваши контроллеры уже разделены по доменам или хотя бы по поддоменам. Вы можете попробовать создать микросервис для каждого контроллера и посмотреть, как он работает; возможно дальнейшее разделение, то есть по Агрегату от DDD (каждый тип Агрегата может быть микросервисом).
Во-вторых, у вас должны быть отдельные проекты для каждого микросервиса. В идеале, если вы хотите устойчивости и масштабируемости, микросервис не должен вызывать другой микросервис во время внешнего запроса. Это означает, что когда микросервис получает запрос от клиентов, он не должен вызывать другой микросервис; для этого в локальном хранилище должны быть все необходимые данные от других микросервисов (с использованием фоновых задач, с синхронными или асинхронными вызовами).
Наконец, что не менее важно, каждый микросервис должен иметь свою собственную базу данных; они не должны совместно использовать одну и ту же базу данных или таблицу.