Этот шаблон известен под несколькими именами ( Например, Резервное хранилище, Запись за и т. Д. * ). Это часто наблюдается в технологиях Data Grid / Cache, а также в других. Обычно доменные объекты хранятся в какой-то очереди FIFO или очереди приоритетов, а затем диспетчер снимает их с очереди в альтернативном потоке или процессе и передает их вашему реальному DAL. Очереди могут находиться в памяти или фактически помещаться в сетевую очередь, такую как ActiveMQ или MSMQ. Кроме того, я видел сценарий, в котором есть отдельные очереди для каждого типа операций с БД.
Во многих случаях это реализовано как фасад перед вашим DAL, представляющий тот же интерфейс. Таким образом, другие приложения думают, что они взаимодействуют с «настоящим» DAL, и не связаны с другими связанными проблемами. Эта развязка позволяет вам изменить его, если вам нужно. Когда данные объекта передаются на фасад, данные помещаются в очередь, а затем элемент управления возвращается вызывающему приложению.
После постановки в очередь вы можете просто выполнять пакетные обновления / вставки или продолжать обрабатывать элементы по одному. Имейте в виду, что понятие транзакции приобретает совершенно иное значение, поэтому вам необходимо продумать это до конца.
Хотя есть технологии, которые делают это ... Это скорее шаблон, чем отдельная технология. У меня нет удобного примера, но вы можете посмотреть документацию по сетке данных из таких продуктов, как Oracle Coherence. Ищите бэк-магазины.