Да, возможно применение микросервисной архитектуры в данном контексте.
При разделении проекта на две независимые части, каждая часть может быть реализована как отдельный микросервис, который будет предоставлять конкретный функционал для своей целевой аудитории (обычных пользователей или поставщиков и админов).
Использование микросервисной архитектуры в данном случае может иметь следующие преимущества:
1. Гибкость и независимость: Каждый микросервис может разрабатываться, масштабироваться и разворачиваться независимо от других. В случае изменений в одной части проекта, не нужно изменять все остальные компоненты.
2. Централизованное управление: Каждый микросервис может иметь отдельную базу данных и собственную модель данных, которая лучше соответствует его функционалу. Таким образом, нет необходимости подгонять модели под разные части проекта.
3. Легкость масштабирования: Микросервисная архитектура позволяет масштабировать только те сервисы, которым это необходимо, что обеспечивает оптимальное использование ресурсов серверов.
Однако, при использовании микросервисной архитектуры возникают некоторые сложности со сборкой данных из разных источников. Для решения проблемы с базой данных можно использовать подход множественных баз данных, где каждый микросервис будет иметь свою собственную базу данных, а для объединения данных из разных баз можно использовать механизмы агрегации или шин данных (как, например, Apache Kafka).
Но в конечном счете, выбор между разделением проекта на две независимые части и использованием микросервисной архитектуры будет зависеть от требований проекта, типа доступных ресурсов и целей, которые необходимо достичь.