There are two types of callbacks associated with committing and rolling back transactions: after_commit
and after_rollback
.
after_commit
callbacks are called on every record saved or destroyed within a transaction immediately after the transaction is committed. after_rollback
callbacks are called on every record saved or destroyed within a transaction immediately after the transaction or savepoint is rolled back.
These callbacks are useful for interacting with other systems since you will be guaranteed that the callback is only executed when the database is in a permanent state. For example, after_commit
is a good spot to put in a hook to clearing a cache since clearing it from within a transaction could trigger the cache to be regenerated before the database is updated.