DDD обычно предпочитает шаблон репозитория по сравнению с шаблоном активной записи, на который вы намекаете с помощью Customer.Save.
Одним из недостатков модели Active Record является то, что она в значительной степени предполагает одну модель персистентности, за исключением некоторого особенно навязчивого кода (в большинстве языков).
Интерфейс хранилища определен на уровне домена, но не знает, хранятся ли ваши данные в базе данных или нет. С помощью шаблона репозитория я могу создать InMemoryRepository, чтобы я мог тестировать логику домена изолированно и использовать внедрение зависимостей в приложении, например, чтобы уровень обслуживания создавал экземпляр SqlRepository.
Для многих людей наличие специального репозитория просто для тестирования звучит глупо, но если вы используете модель репозитория, вы можете обнаружить, что вам действительно не нужна база данных для вашего конкретного приложения; иногда простой FileRepository сделает свое дело. Свадьба с самим собой в базе данных, прежде чем вы знаете, что вам нужно, это потенциально ограничивает. Даже если база данных необходима, гораздо быстрее запускать тесты для InMemoryRepository.
Если у вас нет особого подхода к доменной логике, вам, вероятно, не нужен DDD. ActiveRecord вполне подходит для множества проблем, особенно если у вас есть в основном данные и немного логики.