Автономная синхронизация NoSql с удаленным сервером


Я столкнулся с проблемой, которая требует, автономные возможности синхронизации для приложения. В этом случае пользователь будет заполнять данные в предоставленных листах и может и не иметь доступную сеть. Всякий раз, когда он входит в сеть, клиент должен синхронизировать данные. Может быть два типа сервера один-спутниковый сервер, который будет темперным хранилищем или промежуточным для данных, заполненных в листе, это может быть в интернете или интрасети, так как первый шаг клиент будет толкать данные к этому сервер, а затем будет облачный сервер в Azure или AWS, который будет конечным источником истины, и данные, наконец, будут синхронизированы здесь.

Приложение будет находиться в среднем стеке, и поскольку NoSql не следует свойствам ACID, как бы я мог обеспечить целостность данных в мире NoSql. Другими словами, как я могу гарантировать, что каждый раз, когда синхронизация происходит, она происходит с определенной контрольной точкой, и если это не так, то она откатывается? Объем данных будет огромным, так как это корпоративное приложение.

Также couch db или pouch db или любая другая db не является вариантом. Это будет либо mongo, либо DocumentDB от Azure.

1 2

1 ответ:

Возможно ли, что вы проектируете схему таким образом, что все относящиеся к ней части находятся в одном документе, так как " MongoDB является кислотно-компилирующим на уровне документа". Вы можете Использовать write concern для указания степени согласованности (см. "поддерживает ли MongoDB транзакции ACID?").