# `Aludel.Runs.Executor`
[🔗](https://github.com/ccarvalho-eng/aludel/blob/main/lib/aludel/runs/executor.ex#L1)

Owns run launch and provider execution under explicit supervision.

# `execution_result`

```elixir
@type execution_result() ::
  {:ok, Aludel.Runs.Execution.t()} | {:error, :empty_providers | term()}
```

# `execute`

```elixir
@spec execute(Aludel.Runs.Run.t(), [Aludel.Providers.Provider.t()]) ::
  execution_result()
```

Executes a run against one or more providers and returns a structured outcome.

# `launch`

```elixir
@spec launch(Aludel.Runs.Run.t(), [Aludel.Providers.Provider.t()]) ::
  {:ok, pid()} | {:ok, pid(), term()} | {:error, :empty_providers | term()}
```

Launches a run under the executor supervisor.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
