why are you adding a syncCommitPhase to the CommitCommand? Every node has this information in the configuration, so you don't need to paying the cost of having in memory for each CommitCommand plus the cost of (de)serialize and sending the boolean through the network...