Использовать готовые решения
На мой взгляд, готовый Riak недостаточно безопасен для использования в качестве основного хранилища данных в приложении для электронной коммерции.  Это связано с возможной согласованностью Riak (и многих решений NoSQL).
В Теореме CAP распределенные хранилища данных (одним из них является Riak) могут гарантировать не более двух из следующих условий:
- Согласованность (все узлы видят одни и те же данные одновременно)
- Доступность (гарантия того, что каждый запрос получает ответ о том, был ли он успешным или нет)
- Устойчивость к разделам (система продолжает работать, несмотря на произвольное разделение из-за сетевых сбоев)
В частности, Riak допускает ошибку в отношении доступности и устойчивости к разделам, имея согласованность в конечном счете данных, хранящихся в его хранилище данных
Что Riak может сделать для приложения электронной коммерции
Используя Riak «из коробки», он может стать хорошим источником контента о товарах, продаваемых в вашем приложении для электронной коммерции (контент, который обычно пишется один раз и читается много раз, является отличным вариантом использования Riak), но с сохранением:
- подсчитайте, сколько предметов осталось
- деньги на счету пользователя
Требуется осторожное обращение в распределенном хранилище данных.
Реализация согласованности в потенциально согласованном хранилище данных
Есть несколько методов, которые вы можете использовать, они включают в себя:
- Реализуйте метод сериализации при записи обновлений значений, которые должны быть согласованными (т. е. пройти через единую/контролируемую службу, которая гарантирует последовательное обновление только одного элемента), это нужно будет сделать вне Riak в вашем API.  слой 
- Измените свойства репликации. ваших непротиворечивых сегментов, чтобы вы могли «гарантировать», что никогда не получите устаревшие данные 
  На уровне корзины вы можете выбрать, сколько копий данных вы хотите хранить в своем кластере (N или n_val), сколько копий вы хотите считывать за один раз (R или r) и сколько копий должно храниться в вашем кластере.  быть записано, чтобы считаться успешным (W или w).
- Приведенный выше метод аналогичен использованию доступной модели строгой согласованности.  в последних версиях Riak.
Важное примечание. Во всех этих системах хранения данных (распределенных или нет) вы обычно будете делать следующее:
- Прочитать текущие данные
- Принять решение на основе текущего значения
- Изменить данные (уменьшить количество элементов)
Если все три вышеперечисленных действия нельзя выполнить атомарно (путем блокировки или сбоя третьего, если значение было изменено чем-то другим), приложение электронной коммерции открыто для злоупотреблений.  Эта проблема существует в традиционных решениях для хранения SQL (именно поэтому у вас есть транзакции SQL).
                        
                            04.11.2015