Atomic Delivery
Модель выполнения «все или ничего», при которой транзакция либо выполняется полностью, либо полностью отменяется.
Слово «атомарный» происходит от древнегреческого «atomos» (неделимый). Без атомарности распределенные системы были бы крайне уязвимы к потере данных. Например, в банковской системе перевод 100$ состоит из списания и зачисления. Атомарность гарантирует, что деньги не исчезнут, если сервер зависнет между этими двумя операциями.
graph LR
Center["Atomic Delivery"]:::main
Pre_distributed_systems["distributed-systems"]:::pre --> Center
click Pre_distributed_systems "/terms/distributed-systems"
Pre_networking["networking"]:::pre --> Center
click Pre_networking "/terms/networking"
Pre_consensus_mechanism["consensus-mechanism"]:::pre --> Center
click Pre_consensus_mechanism "/terms/consensus-mechanism"
Rel_atomic_swap["atomic-swap"]:::related -.-> Center
click Rel_atomic_swap "/terms/atomic-swap"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простыми словами
Это как покупка игрушки. Вы отдаете деньги только в тот момент, когда получаете игрушку в руки. Оба действия происходят ровно в одно и то же время, либо не происходят вообще. Вы никогда не останетесь и без денег, и без игрушки.
🤓 Expert Deep Dive
В реляционных базах данных атомарность обычно реализуется через журналирование (WAL). В блокчейн-технологиях (например, EVM) атомарность соблюдается нативно: если смарт-контракт сталкивается с ошибкой, все изменения состояния в рамках этой транзакции отменяются. Для взаимодействия разных блокчейнов используется механизм Atomic Swap с применением Hashed Timelock Contracts (HTLC).
❓ Частые вопросы
What does the 'A' in ACID stand for?
The 'A' in the ACID database model stands for Atomicity, which is the exact same concept as atomic delivery: transactions are indivisible and all-or-nothing.
What is an Atomic Swap in crypto?
An atomic swap allows two people to trade different cryptocurrencies (like Bitcoin for Ethereum) directly from their wallets without using a centralized exchange. It uses atomic delivery to ensure neither party can run away with the funds.
What happens if an atomic transaction fails halfway?
The system initiates a 'rollback'. It undoes any changes made during the partial execution, returning the system to the exact state it was in before the transaction started.