Last Updated on Feb 26, 2021

Fault tolerance is about avoiding system-wide failures because of component-level faults. A significant portion of avoiding and recovering from faults is protecting data validity and consistencies when faults do occur. But implementing these fault-tolerance mechanisms can be hard work and needs a lot of testing to ensure that the solution actually works.

Databases take on some of these fault-handling mechanisms freeing up applications to concentrate on their primary domain. Databases provide a few safety guarantees to applications by taking care of certain error scenarios and concurrency issues. The primary mechanism to provide these guarantees is Transactions.

The safety guarantees provided by transactions are often described by the well-known acronym ACID, which stands for AtomicityConsistencyIsolation, and Durability. It was coined in 1983 by Theo Härder and Andreas Reuter in an effort to establish precise terminology for fault-tolerance mechanisms in databases.

In truth, ACID implementations differ subtly among databases. Even when a database claims to be ACID-compliant, it is unclear what guarantees you can actually expect. ACID has largely become a marketing term.

© 2022 Ambitious Systems. All Rights Reserved.