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