anchor.diff:  -export([
       prepare/2,
       get_lane_spec/3,
  +
       process_item/6,
       process_result/4,
  +
       handle_task_execution_ended/3,
  -    handle_lane_execution_ended/3
  +    handle_lane_execution_ended/3,
  +    handle_workflow_execution_execution_ended/2
   ]).
   
   
  
positive.code:     {error, term()} | json_utils:json_map()
  ) ->
      ok | error.
  process_result(_, AtmWorkflowExecutionEnv, AtmTaskExecutionId, {error, _} = Error) ->
      % TODO VFS-7637 use audit log
      ?error("ASYNC TASK EXECUTION ~p FAILED DUE TO: ~p", [
          AtmTaskExecutionId, Error
      ]),
      report_task_execution_failed(AtmWorkflowExecutionEnv, AtmTaskExecutionId),
      error;
  
  process_result(_AtmWorkflowExecutionId, AtmWorkflowExecutionEnv, AtmTaskExecutionId, Results) ->
      try
          atm_task_execution_api:handle_results(AtmWorkflowExecutionEnv, AtmTaskExecutionId, Results)
      catch _:Reason ->
          % TODO VFS-7637 use audit log
          ?error("FAILED TO PROCESS RESULTS FOR TASK EXECUTION ~p DUE TO: ~p", [
              AtmTaskExecutionId, Reason
          ]),
          report_task_execution_failed(AtmWorkflowExecutionEnv, AtmTaskExecutionId),
          error
  
negative.code:         prepare_internal(AtmWorkflowExecutionId, AtmWorkflowExecutionEnv)
      catch _:Reason ->
          % TODO VFS-7637 use audit log
          ?error("[~p] FAILED TO PREPARE WORKFLOW DUE TO: ~p", [
              AtmWorkflowExecutionId, Reason
          ]),
          error
  