Наша компания занимается разработкой программного обеспечения для электронных турникетов. Одним из самых напряженных требований заказчика было то, что турникеты должны работать в автономном режиме. В целях аудита турникет также должен отправлять каждую попытку прохода на наш главный сервер. Фактически, моя задача состоит в том, чтобы две распределенные таблицы, одна на турникете, работающая под управлением Windows и SQLite, а другая на сервере, работающая под управлением Linux и Oracle, всегда были согласованы друг с другом.
Турникеты (клиенты) связываются с сервером через крайне ненадежную беспроводную сеть, используя протокол SOAP через HTTP.
В наших следующих переговорах с заказчиком мы обсудим, что должен делать турникет при возникновении сетевого раздела. Поскольку здесь мы явно не можем пожертвовать доступностью, мы теряем согласованность.
Итак, мой вопрос: является ли хорошей стратегией использование теоремы CAP, чтобы убедить нашего клиента, что это нормально, что мы не гарантируем согласованность при возникновении сетевого раздела? Хорошо ли говорить им: Вы не можете использовать турникет в автономном режиме и пытаться пройти аудит, потому что... теорема CAP?