Transactional system upgrades without compromise

This article is about two desirable traits in system upgrades: atomicity and being able to roll back. Atomicity: the upgrade is either applied in full or not applied at all. The system is not left in a broken state because, e.g., "the package manager updated half of the files and then died". This includes situations like a power failure mid-upgrade. Rollback-capable: if a system upgrade fails, or…