anchor.diff:              %% TODO compute timeout based on existing created_at
               erlang:send_after(Duration*1000, self(), expired),
               error_logger:info_msg("Beginning execution of job ~s~n", [JobId]),
  -            execute(JobId),
  -            {next_state, executing, Job};
  +            {next_state, executing, register_node_status_watchers(save_job_status(executing, Job))};
           false ->
               error_logger:error_msg("Failed to register job tracker process ~p for ~p~n", [JobId, self()]),
               {stop, shutdown, Job}
  
positive.code: handle_sync_event(_Event, _From, StateName, Job) ->
      {reply, ok, StateName, Job}.
  
  handle_info(execute, executing, Job) ->
      error_logger:info_msg("JOB STATUS EXECUTING~n"),
      {next_state, executing, save_job_status(executing, Job)};
  handle_info(executing, new, Job) ->
      error_logger:info_msg("JOB STATUS EXECUTING~n"),
      {next_state, executing, save_job_status(executing, Job)};
  handle_info(error, executing, Job) ->
      error_logger:info_msg("JOB STATUS ERROR~n"),
      {next_state, error, save_job_status(error, Job)};
  
negative.code:          handle_info/3,
           terminate/3,
           code_change/4]).
  
  %% ------------------------------------------------------------------
  %% API Function Definitions
  