Я далеко не эксперт (все, что я сделал, это немного поиграл с этим ...), но вот как я думаю об этом:
Обычно, когда я проектирую приложение, у меня есть группа серверов приложений за балансировщиком нагрузки. Часто у меня бывают липкие сессии, так что каждый пользователь во время этого сеанса возвращается на один и тот же сервер приложений. Я собираюсь привязать экземпляр couchdb к каждому серверу приложений.
Таким образом, вы можете использовать этот локальный couchdb для доступа к пользовательским настройкам, данным о продукте ... любые данные, которые у вас есть, не обязательно должны быть в курсе.
Итак ... теперь у вас есть данные об этих локальных CouchDB. CouchDB позволяет репликацию. Таким образом, каждый фиксированный период времени объединяйте данные обратно (каждые X секунд?) В одноранговые узлы, чтобы поддерживать их актуальность.
В целом вам не нужно беспокоиться о конфликтах, потому что у каждого сервера приложений есть своя собственная CouchDB, и пользователи присоединяются к серверу приложений, и вы получаете согласованность, потому что у вас есть репликация.
Это отвечает на ваш вопрос?