НО! Они все пользуются одной и той же БД, из которой "черпают" данные "общего назначения": юзеры, ассеты, события и пр.
Вот я и хочу "общую часть" вынести куда-то отдельно. И спрашиваю как это принято делать: библиотека? модуль? сервис?
Можно сделать как подключаемую библиотеку (пакет Java), вынеся всё в ядро самое необходимое. Вокруг библиотеки ядра могут быть созданы какие-то библиотеки-обвески. Репозиториев библиотек может быть несколько, для простоты. Каждая библиотека может иметь свою версию и использоваться монолитом при сборке.
Это значит, мне надо сделать 1000 репозиториев, в каждом Х методов (получение по ID, получение по значению поля, одного объекта, коллекции...). И ещё 1000*Х методов в контроллерах....
Ну зачем так? Нет смысла дробить даже на десятки, не говоря уже о тысячах.
Начните с разделения по модулям, где у каждого компонента своя зона ответственности и нет переплетений зависимостей с другими компонентами.
Нужно знать больше подробностей о предметной области и текущей архитектуре проекта, чтобы дать дополнительные советы.