anchor.diff:      %% TODO(borja): Actually implement decide phase
       Reply = case ReturnAcc of
           false ->
  +            io:format("PVC No consensus, aborting~n"),
               %% TODO(borja): Send decide(false), so they remove the tx from the queue
               {aborted, Transaction#transaction.txn_id};
           _ ->
  +            io:format("PVC All partitions agree, should start decide phase~n"),
               execute_post_commit_hooks(ClientOps)
       end,
       gen_fsm:reply(From, Reply),
  
positive.code:     pvc = State#tx_coord_state.transactional_protocol,
      case UpdatedPartitions of
          [] ->
              %% No need to perform 2pc if read-only
              ok = execute_post_commit_hooks(ClientOps),
              gen_fsm:reply(From, ok),
              {stop, normal, State};
  
          Partitions ->
              ok = ?CLOCKSI_VNODE:prepare(Partitions, Transaction),
              NumToAck = length(Partitions),
              {next_state, pvc_receive_votes, State#tx_coord_state{num_to_ack = NumToAck, state = prepared}}
  
negative.code:                 S0#tx_coord_state{num_to_ack = NumToAck - 1, prepare_time = MaxPrepareTime}}
      end.
  
  pvc_receive_votes({pvc_vote, Outcome, SeqNumber}, State = #tx_coord_state{
      num_to_ack = NumToAck
  }) ->
      io:format("PVC Received vote ~p with SeqNumber ~p~n", [Outcome, SeqNumber]),
      case Outcome of
          false ->
              pvc_decide(State#tx_coord_state{return_accumulator = false});
  