anchor.diff:      atm_workflow_execution:id(),
       atm_lane_execution:index(),
       atm_task_schema:record(),
  -    atm_lambda_revision:record()
  +    atm_lambda_revision:record(),
  +    atm_resource_spec:record()
   ) ->
       binary().
  -build_function_name(AtmWorkflowExecutionId, AtmLaneIndex, AtmTaskSchema, AtmLambdaRevision) ->
  +build_function_name(
  +    AtmWorkflowExecutionId,
  +    AtmLaneIndex,
  +    AtmTaskSchema,
  +    AtmLambdaRevision,
  +    ResourceSpec
  +) ->
       AtmLambdaRevisionName = AtmLambdaRevision#atm_lambda_revision.name,
   
       Signature = str_utils:md5_digest([
           AtmWorkflowExecutionId,
           AtmLaneIndex,
           AtmTaskSchema#atm_task_schema.lambda_id,
  -        AtmTaskSchema#atm_task_schema.lambda_revision_number
  +        AtmTaskSchema#atm_task_schema.lambda_revision_number,
  +        ResourceSpec
       ]),
   
       Name = str_utils:format_bin("w~s-s~s-~s", [
  
positive.code:     Result.
  
  
  %%--------------------------------------------------------------------
  %% @private
  %% @doc
  
negative.code: build(AtmWorkflowExecutionId, AtmLaneIndex, AtmTaskSchema, AtmLambdaRevision) ->
      assert_openfaas_available(),
  
      ResourceSpec = select_resource_spec(AtmTaskSchema, AtmLambdaRevision),
      FunctionName = build_function_name(
          AtmWorkflowExecutionId, AtmLaneIndex, AtmTaskSchema, AtmLambdaRevision, ResourceSpec
      ),
  
      #atm_openfaas_task_executor{
          function_name = FunctionName,
          operation_spec = AtmLambdaRevision#atm_lambda_revision.operation_spec
      }.
  
  