////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////
[[PipelineRunConfigurations]]
:imagesdir: ../assets/images
:description: Run configurations decouple the design and execution phases of Hop pipeline development. A pipeline is a definition of _how_ data is processed, a run configurations defines _where_ the pipeline is executed.

= Pipeline Run Configurations

== Description

Run configurations decouple the design and execution phases of Hop pipeline development.
A pipeline is a definition of _how_ data is processed, a run configurations defines _where_ the pipeline is executed.
Hop comes supports a number of different runtime engines, each of which will be described in more detail in this section.
Each run configuration comes with its own set of parameters and configuration options, all of which are stored as Hop Metadata.

== Choosing a Run Configuration

When starting a new pipeline click **New** next to 'Pipeline run configuration'.
All run configurations have a name, description and an engine type, each engine type has its own set of configuration options.

Once created, run configurations are available from the 'Pipeline run configuration' list and are ready to use.

image:run-configuration/configuration-selection.png[Hop Configuration Selection,width=45%,align="left"]

== Options

=== Main Tab

The main tab contains the name, description and the dropdown list for the available engine types.

[options="header",cols="1,3"]
|===
|Option|Description
|Name|The name you want to use for this pipeline run configuration.
|Description|A description you want to use for this pipeline run configuration (optional).
|Execution information location|The xref:metadata-types/execution-information-location.adoc[] to use with this pipeline run configuration.
|Execution data profile|The xref:metadata-types/execution-data-profile.adoc[] to use with this pipeline run configuration.
|Engine type a|
The available engine types are:

* *xref:pipeline/pipeline-run-configurations/beam-dataflow-pipeline-engine.adoc[Beam DataFlow pipeline engine]*: this configuration runs pipelines on Google DataFlow over Apache Beam
* *xref:pipeline/pipeline-run-configurations/beam-direct-pipeline-engine.adoc[Beam Direct pipeline engine]*: this configuration runs pipelines on the direct Beam runner (mainly for testing purposes)
* *xref:pipeline/pipeline-run-configurations/beam-flink-pipeline-engine.adoc[Beam Flink pipeline engine]*: this configuration runs pipelines on Apache Flink over Apache Beam
* *xref:pipeline/pipeline-run-configurations/beam-spark-pipeline-engine.adoc[Beam Spark pipeline engine]*: this configuration runs pipelines on Apache Spark over Apache Beam
* *xref:pipeline/pipeline-run-configurations/native-local-pipeline-engine.adoc[Hop local pipeline engine]*: this configuration runs pipelines locally in the native Hop engine
* *xref:pipeline/pipeline-run-configurations/native-remote-pipeline-engine.adoc[Hop remote pipeline engine]*: this configuration runs pipelines in the native Hop engine on a remote machine
|===

TIP: Check the link:https://beam.apache.org/documentation/runners/capability-matrix/[Beam Capability Matrix] to help you decide which Beam engine works best for your pipeline.

=== Variables Tab

This tab allows Hop developers to specify a set of variables to be used in the run configurations.

[options="header",cols="1,3"]
|===
|Option|Description
|Variable name|A variable name.
|Value|The variable value.
|Description|A description for the variable.
The description is optional but recommended.
|===


