anchor.diff:      end;
   node_postcondition(_NodeState, {call, ?MODULE, sleep, []}, _Result) ->
       true;
  +node_postcondition(_NodeState, {call, ?MODULE, session_write, [_Node, _Key, _Value]}, {ok, _}) ->
  +    true;
   node_postcondition(_NodeState, {call, ?MODULE, write, [_Node, _Key, _Value]}, {ok, _}) ->
  +    true;
  +node_postcondition(_NodeState, {call, ?MODULE, write, [_Node, _Key, _Value]}, {error, noproc}) ->
  +    node_debug("=> write failed, leader unavailable...", []),
       true;
   node_postcondition(_NodeState, Command, Response) ->
       node_debug("generic postcondition fired (this probably shouldn't be hit) for command: ~p with response: ~p", 
  
positive.code:     false.
  
  %% Next state.
  node_next_state(_State, #node_state{values=Values0}=NodeState, _Response, {call, ?MODULE, write, [_Node, Key, Value]}) ->
      Values = dict:store(Key, Value, Values0),
      NodeState#node_state{values=Values};
  node_next_state(_State, NodeState, _Response, {call, ?MODULE, read, [_Node, _Key]}) ->
      NodeState;
  node_next_state(_State, NodeState, _Response, {call, ?MODULE, sleep, []}) ->
  
negative.code:     %% Get first node.
      FirstNode = {FirstName, _} = hd(Nodes),
  
      %%%===================================================================
      %%% Raft: initialize
      %%%===================================================================
  
      %% Initialize a Raft cluster.
      {ok, Nodes} = rpc:call(?NAME(FirstName), zraft_client, create, [Nodes, zraft_dict_backend]),
  
      %%%===================================================================
      %%% Raft: sessionless
      %%%===================================================================
  
      %% Perform a single write.
      {ok, FirstNode} = rpc:call(?NAME(FirstName), zraft_client, write, [FirstNode, {1, 1}, 1000]),
  
      %% Perform a single read.
      {{ok, 1}, FirstNode} = rpc:call(?NAME(FirstName), zraft_client, query, [FirstNode, 1, 1000]),
  
      %%%===================================================================
      %%% Raft: light session
      %%%===================================================================
  
      %% Create light session.
      ZraftSession = rpc:call(?NAME(FirstName), zraft_client, light_session, [FirstNode, 500, 500]),
      true = ets:insert(prop_partisan, {zraft_session, ZraftSession}),
  
      %% Perform a single write using light session.
      {ok, ZraftSession} = rpc:call(?NAME(FirstName), zraft_client, write, [ZraftSession, {1, 1}, 1000]),
  
      %% Perform a single read using light session.
      {{ok, 1}, ZraftSession} = rpc:call(?NAME(FirstName), zraft_client, query, [ZraftSession, 1, 1000]),
  
      node_debug("zraft_lib fully initialized...", []),
  
      ok.
  
  