Современные распределённые системы отказываются от полной ACID-соответствия по нескольким причинам:
- Сложности с обеспечением согласованности. 3 В микросервисной архитектуре у каждого микросервиса своя независимая база данных, что затрудняет обеспечение согласованности. 3 Вместо одной большой ACID-транзакции приходится работать с множеством небольших транзакций, которые нужно объединить в одну распределённую. 3
- Необходимость в отказоустойчивости и масштабировании. 2 Большинство инструментов распределённых систем ослабляют критерии согласованности операций, чтобы обеспечить эти характеристики. 2
- Высокая задержка в системах с широким территориальным распределением. 4 В таких системах часто приходится отказываться от идеальной согласованности для повышения производительности. 4
В некоторых системах, например в Cassandra, полностью отсутствует ACID, в других ACID-транзакционность поддерживается только на уровне изменений одной строки или в пределах одного сегмента. 1