anchor.diff:      case materializer:check_operations([{update, {Key, Type, OpParams}}]) of
           ok ->
               case gen_fsm:sync_send_event(CoordFsmPid,
  -                                         {update, {Key, Type, OpParams}}) of
  +                                         {update, {Key, Type, OpParams}}, ?OP_TIMEOUT) of
                   ok -> ok;
                   {aborted, _} -> {error, aborted};
                   {error, Reason} -> {error, Reason}
  
positive.code:                          [client_op()]) -> {ok, {txid(), [snapshot()], snapshot_time()}} | {error, term()}.
  clocksi_execute_tx(Clock, Operations) ->
      {ok, CoordFsmPid} = clocksi_static_tx_coord_sup:start_fsm([self(), Clock, Operations]),
      gen_fsm:sync_send_event(CoordFsmPid, execute).
  
  -spec clocksi_execute_tx([client_op()]) -> {ok, {txid(), [snapshot()], snapshot_time()}} | {error, term()}.
  clocksi_execute_tx(Operations) ->
  
negative.code: %%      but should be changed when the new transaction api is decided
  -spec clocksi_full_icommit(txid()) -> {aborted, txid()} | {ok, {txid(), snapshot_time()}} | {error, reason()}.
  clocksi_full_icommit({_, _, CoordFsmPid})->
      case gen_fsm:sync_send_event(CoordFsmPid, {prepare, empty}, ?OP_TIMEOUT) of
          {ok,_PrepareTime} ->
              gen_fsm:sync_send_event(CoordFsmPid, commit, ?OP_TIMEOUT);
          Msg ->
              Msg
      end.
  
  -spec clocksi_iprepare(txid()) -> {aborted, txid()} | {ok, non_neg_integer()}.
  clocksi_iprepare({_, _, CoordFsmPid})->
      gen_fsm:sync_send_event(CoordFsmPid, {prepare, two_phase}, ?OP_TIMEOUT).
  
  -spec clocksi_icommit(txid()) -> {aborted, txid()} | {ok, {txid(), snapshot_time()}}.
  clocksi_icommit({_, _, CoordFsmPid})->
      gen_fsm:sync_send_event(CoordFsmPid, commit, ?OP_TIMEOUT).
  