> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/release-orchestration/3.0/activities/activity-dependencies.md).

# Activity Dependencies

Activity dependencies control the execution order of activities within a phase. Properly configuring dependencies ensures activities execute in the correct sequence.

### What are Activity Dependencies? <a href="#what-are-activity-dependencies" id="what-are-activity-dependencies"></a>

Activity dependencies define which activities must complete before another activity can start. They ensure:

* Correct execution order
* Prerequisites are met
* Data and artifacts are available
* Validation occurs in proper sequence

### Dependency Types <a href="#dependency-types" id="dependency-types"></a>

#### Sequential Dependencies <a href="#sequential-dependencies" id="sequential-dependencies"></a>

One activity must complete before another starts:

```yaml
phase:
  activities:
    - activity: AutoPipe
      id: AutoPipe
      name: AutoPipe90
      depends-on: []
    - activity: AutoPipe
      id: AutoPipe12
      name: AutoPipe12
      depends-on:
        - AutoPipe
```

**Execution Flow:**

```
Build → Test → Deploy
```

#### Parallel Execution <a href="#parallel-execution" id="parallel-execution"></a>

Activities with no dependencies can run in parallel:

```yaml
phase:
  activities:
    - activity: AutoPipe
      id: AutoPipe
      name: AutoPipe90
      depends-on: []
    - activity: AutoPipe
      id: ManualTestUIUI
      name: ManualTestUIUI
      description: doc
      depends-on: []
```

**Execution Flow:**

```
Build Service A ─┐
Build Service B ─┼→ Integration Test
Build Service C ─┘
```

#### Conditional Dependencies <a href="#conditional-dependencies" id="conditional-dependencies"></a>

Dependencies that depend on conditions:

```yaml
phase:
  activities:
    - activity: AutoPipe
      id: AutoPipe12
      name: AutoPipe12
      depends-on:
        - AutoPipe
    - activity: AutoPipe
      id: TestActivity00
      name: TestActivity00
      depends-on:
        - AutoPipe12
      if: <+90>
```

### Dependency Configuration <a href="#dependency-configuration" id="dependency-configuration"></a>

#### Basic Dependency <a href="#basic-dependency" id="basic-dependency"></a>

Simple dependency declaration:

```yaml
activity:
  name: "Activity B"
  depends-on:
    - ActivityA
```

#### Multiple Dependencies <a href="#multiple-dependencies" id="multiple-dependencies"></a>

Activity depends on multiple activities:

An activity can list multiple prerequisite activity IDs under `depends-on`.

### Common Dependency Patterns <a href="#common-dependency-patterns" id="common-dependency-patterns"></a>

#### Linear Chain <a href="#linear-chain" id="linear-chain"></a>

Sequential activities in a chain:

```
Activity 1 → Activity 2 → Activity 3 → Activity 4
```

### Best Practices <a href="#best-practices" id="best-practices"></a>

#### Minimize Dependencies <a href="#minimize-dependencies" id="minimize-dependencies"></a>

Only add necessary dependencies:

* **Recommended:** Essential prerequisites
* **Avoid:** Unnecessary blocking

#### Clear Dependency Logic <a href="#clear-dependency-logic" id="clear-dependency-logic"></a>

Make dependencies explicit and understandable:

* Use descriptive activity names
* Document dependency reasons
* Avoid implicit dependencies

#### Optimize for Parallelism <a href="#optimize-for-parallelism" id="optimize-for-parallelism"></a>

Structure dependencies to enable parallel execution:

* Identify independent activities
* Minimize sequential bottlenecks
* Group related dependencies

#### Validate Early <a href="#validate-early" id="validate-early"></a>

Check dependencies during process creation:

* Validate dependency chains
* Detect cycles
* Identify unreachable activities

### Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

#### Activity Not Starting <a href="#activity-not-starting" id="activity-not-starting"></a>

Check:

* All dependencies completed successfully
* No blocking conditions
* Activity is not skipped
* No errors in dependencies

#### Unexpected Execution Order <a href="#unexpected-execution-order" id="unexpected-execution-order"></a>

Verify:

* Dependency configuration
* Conditional logic
* Parallel execution settings
* Activity status

### Related Topics <a href="#related-topics" id="related-topics"></a>

* [Activities Overview](/release-orchestration/use-release-orchestration/release-orchestration-activities/activities-overview.md)
* [Phase Dependencies](/release-orchestration/use-release-orchestration/release-orchestration-phases/phase-dependencies.md)
* [Parallel vs Sequential Execution](/release-orchestration/3.0/handle-failures/parallel-vs-sequential-execution.md)
