transactional-update is an application that allows to update a Linux system and its applications in an atomic way: The update will be performed in the background, not influencing the currently running system. The update will be activated by a reboot. This concept is similar to rpm-ostree or CoreOS' previous Container OS. However transactional-update is not another package manager, but is reusing the existing system tools such as RPM as the packaging format and zypper as the package manager. It depends on Btrfs due to its snapshotting and copy-on-write features.
The idea and reason to build up on existing tools is the ability to continue using existing packages and tool chains for delivery and application of updates. While currently only implemented for (open)SUSE environments the concept is vendor independent and may also be implemented for other package managers, package formats and file systems. It consists of the (open)SUSE specific transactional-update script and the generic tukit library.
Conceptually transactional-update creates a new snapshot with btrfs before performing any update and uses that snapshot for modifications. Since btrfs snapshots contain only the difference between two versions and thus are usually very small, updates done with transactional-update are very space efficient. This also means several snapshots can be installed at the same time without a problem.