ACID

Материал из Энциклопедия интернет-маркетинга MarketWiki

ACID (Atomicity, Consistency, Isolation, Durability) - набор требований к транзакционной системе, обеспечивающий надежность и предсказуемость работы с данными. В интернет-маркетинге принципы ACID критически важны для систем, работающих с заказами, платежами, личными данными клиентов и рекламными бюджетами.

Термин введен в 1983 году Тревором Хардером и Франко Путцолу как набор свойств, гарантирующих корректность выполнения транзакций в базах данных.

Значение ACID для интернет-маркетинга

[править]

В маркетинговых системах ежесекундно происходят тысячи операций: списания с рекламных бюджетов, оформление заказов, зачисление бонусов, обновление статусов лидов. Без соблюдения ACID данные неизбежно рассинхронизируются, что приводит к задвоениям заказов, некорректным списаниям и потере доверия клиентов.

Атомарность (Atomicity)

[править]

Транзакция выполняется полностью или не выполняется вовсе. Если в процессе оформления заказа списание бонусов прошло успешно, а списание средств с карты упало с ошибкой - атомарность требует откатить всю транзакцию, чтобы клиент не потерял бонусы без покупки.

НАЧАТЬ ТРАНЗАКЦИЮ
  СПИСАТЬ_БОНУСЫ(клиент, 500)
  СПИСАТЬ_С_КАРТЫ(клиент, 1500)
  СОЗДАТЬ_ЗАКАЗ(товар)
ЕСЛИ ОШИБКА → ОТКАТИТЬ ВСЁ
ЕСЛИ УСПЕХ → ЗАФИКСИРОВАТЬ

Согласованность (Consistency)

[править]

Данные всегда остаются в непротиворечивом состоянии. После любой транзакции сохраняются все бизнес-правила: баланс клиента не может уйти в минус, количество зарезервированных товаров не превышает остатки, рекламный бюджет не становится отрицательным.

Изолированность (Isolation)

[править]

Параллельные транзакции не влияют друг на друга. Если 2 менеджера одновременно пытаются зарезервировать последний товар для разных клиентов, изолированность гарантирует, что только 1 получит товар, а второй увидит ошибку, а не оба "успешно" оформят заказ на несуществующий товар.

КЛИЕНТ А (10:00:01) → ЗАПРОС товар X (остаток 1) → УСПЕХ
КЛИЕНТ Б (10:00:01) → ЗАПРОС товар X (остаток 1) → ОШИБКА "нет в наличии"

Стойкость (Durability)

[править]

После подтверждения транзакции данные сохраняются даже при сбое системы. Оплата, прошедшая у клиента, не должна пропасть после перезагрузки сервера. Данные о клике по рекламе, за которые уже списаны деньги, должны доехать до отчетов независимо от сбоев.

Применение в маркетинговых системах

[править]

Принципы ACID реализованы в большинстве реляционных баз данных (PostgreSQL, MySQL), которые используются в:

При интеграции между различными сервисами (например, CRM и платежный шлюз) маркетологу важно понимать, что ACID гарантируется только внутри каждой системы, но не между ними. Для компенсации используются транзакционные письма, повторные запросы и сверки.

Альтернативы и исключения

[править]

Некоторые NoSQL-базы данных (MongoDB, Cassandra) жертвуют строгой ACID в пользу производительности и масштабируемости, предлагая модель BASE (Basically Available, Soft state, Eventual consistency). В маркетинге такие решения используются для хранения больших объемов событий (клики, просмотры), где допустима временная несогласованность, но не для финансовых операций.

Связанные термины

[править]