Какие сущности или слои должно иметь приложения такого формата?
Материнка. 
у нее комплектующие типа 
процессор
память 
hdd
Sdd
usb
и  прочее. 

Но !

Энтити
это 
Материнка. 
процессор
память 
hdd
Sdd

И вы уже в репозитории создаете служебный метод. 
GetCompatiblyCpu  возвращающий процессоры совместимые с матерью. 

А уже на уровне выше вы собираете модель, которая содержит всю требуху. 
База она должна быть простая
1. DDD начинается не с базы, а с кода. 
2. Entity может быть разной. Если вы говорите про анемичную сущность, то у неё есть set и get. Однако это считается не очень хорошая практика. Больше она подходит для быстрой разработки. Поэтому сущность должна быть богатой. В идеале состоять только из методов модификации убирая get и set. В таком случае вы можете закладывать бизнес правила прямо в сущности. Вы сказали, что она не может состоять из логики - это ошибочно. Хорошая сущность должна иметь логику. Пример
3. Entity ничего не возвращает. Это задача репозитория. 
4. Кроме Entity есть агрегат. Вот он как раз включает в себя все детали. 

Про DDD лучше читать или смотреть. Так как это достаточно обширная тема, в которой нужно разбираться не только по ответам на тостере, но и на практике.

Статья в помощь: https://m.habr.com/ru/post/61524/