Суть. Запись принимается одной репликой (или частью) и распространяется на остальные асинхронно. Пока она не дошла, чтение с другой реплики вернёт старое значение. Гарантия только одна — сходимость при отсутствии новых записей. Сколько ждать, не гарантируется.
Зачем. Не ждать подтверждения всех реплик — значит быстрее отвечать и продолжать работу при отказе части узлов и при разделении сети (AP в CAP). Так работают асинхронные реплики баз, DNS, кэши, CDN, Cassandra и DynamoDB по умолчанию, поисковые индексы и проекции в CQRS.
Аномалии, которые видит пользователь:
- сохранил — обновил страницу — не видит изменения;
- комментарий появился и пропал при следующем запросе (попал на отстающую реплику);
- ответ виден раньше вопроса.
Как жить: выбрать нужные гарантии сессии — читать свои изменения с лидера (read-your-writes), привязывать пользователя к реплике (монотонное чтение), показывать результат записи из ответа без перечитывания; для конфликтующих одновременных записей — версии, «последний побеждает» или CRDT.
Где нельзя: операции с инвариантами — списание денег, остатки, уникальные логины, бронирования. Там нужна сильная согласованность в одной точке: транзакция в лидере, условная запись, консенсус.