К примеру есть бизнес объект Department.
У объекта Department есть такие свойства как Employees, Orders и т.п.
Так же есть множество методов вроде AddEmployee и т.п.
В методе AddEmployee может выполняться много полезной работы кроме добавления самого рабочего в базу, например обновление разных числовых счетчиков, пересчета нагрузок и т.п.
Т.е. нам не нужно после добавления нового служащего в БД вытягивать из БД обновившуюся информацию — бизнес логика по идее должна корректно обновить свое состояние. Т.е. заметно сокращается кол-во обращений к БД.
Однако, если мы помещаем такой объект Department в кэш приложения (например, чтобы все реальные сотрудники одного департамента обслуживались одним бизнес-объектом когда запрашивают странички в браузере), то возникают проблемы параллельного доступа и устаревания данных.
Так вот, может быть все-таки лучше при каждом запросе загружать данные из БД?
Очень хотелось бы понять, как профессионалы поступают в таких случаях.