Я пытаюсь выяснить, какой уровень должен отвечать за кэширование (вставка / удаление) в проекте Domain Driven Design. Цель состоит в том, чтобы повысить производительность веб-приложения путем кэширования любых объектов, которые извлекаются из репозитория.
Мое решение разделено следующим образом:
MyApp.Infrastracture
MyApp.Repositories
MyApp.Domain
MyApp.WebApplication
Я считаю, что, поскольку кеш использует только веб-приложение, оно должно быть этим слоем, на котором должна идти логика кеширования? Однако это не кажется правильным, поскольку я хочу, чтобы веб-приложение было легким и сфокусированным на обслуживании веб-страниц.
Кроме того, кеширование не является первоклассной концепцией предметной области, поэтому не имеет естественного соответствия на уровне домена.
Что что делать?