ACID stands for Atomicity, Consistency, Isolation, and Durability. Atomicity ensures that transactions are all-or-nothing, Consistency ensures that databases remain in a valid state, Isolation prevents transactions from interfering with each other, and Durability guarantees that once a transaction is committed, it will survive system failures.
In depth
The ACID properties are fundamental to ensuring reliable processing of database transactions. Atomicity means that a transaction will either fully complete or not at all, which prevents partial updates and maintains data integrity. Consistency ensures that transactions move the database from one valid state to another, enforcing rules and constraints to avoid violations. Isolation allows transactions to occur independently, ensuring that concurrent transactions do not lead to unexpected results. Lastly, Durability guarantees that once a transaction is committed, its changes are permanent, even in the event of a system crash, thereby safeguarding against data loss. Each of these properties plays a crucial role in maintaining trust and reliability in database operations, especially in multi-user environments where simultaneous transactions are common.
Example scenario
For instance, in an online banking application when a user transfers money from one account to another, the transaction needs to be atomic: if the debit from one account fails, the credit to the other should not occur. Consistency means the total amount of money across accounts should remain the same before and after the transaction. Isolation ensures that if two users transfer money at the same time, their transactions do not interfere with one another. Finally, durability guarantees that if the transaction is completed, even a power failure won't erase it, preventing financial discrepancies.
Common mistakes
One common mistake is misunderstanding atomicity; some developers might think a transaction can be partially successful, which can lead to data corruption or inconsistency. Another frequent error is neglecting isolation; this can happen when developers assume that concurrent transactions will not interfere, leading to race conditions and unexpected outcomes. Lastly, some may overlook the importance of durability, thinking it isn't crucial since the database is not often used in a way that risks data loss. Each of these misconceptions can lead to serious issues in application reliability and data integrity.
Follow-up questions
- What happens if one part of a transaction cannot be completed?
- Can you give an example of how isolation is implemented in databases?
- How do different databases handle ACID properties?
- What issues might arise if these properties are not followed?

Preparing for a system design interview?
- A 7-step method for answering any system design question, plus estimation numbers
- 5 worked designs: URL shortener, rate limiter, chat, news feed and file storage
- Guides to caching, databases, queues, consistency and reliability, with a 4-week study plan
- 306 practice questions with answers on caching, databases, queues, microservices, APIs and more
5 worked designs, a 4-week plan and 306 practice questions with answers.
The material stays free to read online. This is the organised, offline, print-ready PDF edition. Secure payment by PayPal; your personal download link is emailed after payment is confirmed. Digital product, no shipping.