In computer science, durability is the ACID property that guarantees that transactions that are successfully committed will survive permanently and will not be undone by system failure.

For example, if a flight booking database system reports that a seat has successfully been booked, then the seat will remain booked even if the system crashes. Durability also guarantees that the system will not rollback the transaction because the seat was double-booked. (The system must check this before it acknowledges the seat has been booked)

The only way a transaction can be undone after it has been committed is by a compensatory transaction.

Durability is usually implemented by flushing the transaction's log records to disk before acknowledging commitment. In distributed transactions, all participating servers must acknowledge that they have stored all data and checked all consistency constraints before commit can be acknowledged. This is usually done by a two-phase commit protocol.