This class represents the 2-phase commit protocol, where an event is processed,
the system is prepared to switch to a new configuration based on the processed event,
and finally commits the new configuration (i.e. the system switches to the new configuration).
As can be seen, this is a 3-step process.