anchor.diff:  
   [datasource-task-launcher-sink]
   ==== Task Launcher Sink
  -The https://github.com/spring-cloud-stream-app-starters/tasklauncher-local[Task Launcher Sink] allows tasks to be launched via a stream as discussed <<spring-cloud-dataflow-launch-tasks-from-stream, here>>.
  -Since tasks launched by the Task Launcher Sink may not want their task executions
  -recorded to the same datastore as Spring Cloud Data Flow,
  -each https://docs.spring.io/spring-cloud-task/docs/current/apidocs/org/springframework/cloud/task/launcher/TaskLaunchRequest.html[TaskLaunchRequest]
  -received by the Task Launcher Sink must have the required datasource information established as app properties or command line arguments.
  +The https://github.com/spring-cloud-stream-app-starters/tasklauncher-dataflow[Data Flow Task Launcher Sink] always uses the Data Flow Server's configured task database when launching tasks.
  +
  +Standalone Task Launcher Sink implementations are also available which allow you to store task executions in a separate database.
  +Since these task launchers do not use the Data Flow Server, they are platform-specific and require additional configuration parameters, including data source configuration, and the resource location of the executable jar for the task application.
  +Additionally, they do not provide a way to limit the number of concurrently running tasks, as the Data Flow Task Launcher does.
  +
  +The additional configuration requires a more complex form of the
  +https://docs.spring.io/spring-cloud-task/docs/current/apidocs/org/springframework/cloud/task/launcher/TaskLaunchRequest.html[TaskLaunchRequest].
  +Requests processed by a standalone Task Launcher Sink must include the required datasource information as app properties or command line arguments.
   Both https://github.com/spring-cloud-stream-app-starters/tasklaunchrequest-transform/blob/master/spring-cloud-starter-stream-processor-tasklaunchrequest-transform/README.adoc[TaskLaunchRequest-Transform]
  -and https://github.com/spring-cloud-stream-app-starters/triggertask/blob/master/spring-cloud-starter-stream-source-triggertask/README.adoc[TriggerTask Source] are examples
  -of how a source and a processor allow a user to set the datasource properties via the app properties or command line arguments.
  +and https://github.com/spring-cloud-stream-app-starters/triggertask/blob/master/spring-cloud-starter-stream-source-triggertask/README.adoc[TriggerTask Source] provide examples of using a standalone Task Launcher Sink.
  +
  +
  +Currently the platforms supported by the standalone `tasklauncher` sinks are:
  +
  +* https://github.com/spring-cloud-stream-app-starters/tasklauncher-local[local]
  +* https://github.com/spring-cloud-stream-app-starters/tasklauncher-cloudfoundry[Cloud Foundry]
  +* https://github.com/spring-cloud-stream-app-starters/tasklauncher-kubernetes[Kubernetes]
  +
  +CAUTION: `tasklauncher-local` is meant for development purposes only.
   
   ==== Composed Task Runner
   Spring Cloud Data Flow allows a user to create a directed graph where each node
  
positive.code: [source]
  task.foo=file:///tmp/foo-1.2.1.BUILD-SNAPSHOT.jar
  task.bar=file:///tmp/bar-1.2.1.BUILD-SNAPSHOT.jar
  
  
  Then you can use the `app import` command and provide the location of the properties file by using the  `--uri` option, as follows:
  
  
negative.code: 
  When running Data Flow on your local machine, Tasks are launched in a separate JVM.
  When running on Cloud Foundry, tasks are launched using https://docs.cloudfoundry.org/devguide/using-tasks.html[Cloud Foundry's Task] functional and when running on Kubernetes, task are launched using the `Job` kind type.
  
  == The Lifecycle of a Task
  
  