Packages

Production-ready hyperparameter optimization for Elixir with high Optuna parity. Leverages BEAM fault tolerance, real-time dashboards, and native distributed computing.

Current section

Files

Jump to
scout lib executor CLAUDE.md
Raw

lib/executor/CLAUDE.md

# lib/scout/executor/ - Execution Strategies
## Overview
Different strategies for executing trials - local or distributed.
## Executors
- `local.ex` - Synchronous local execution, good for development
- `oban.ex` - Distributed execution via Oban job queue, production-ready
## Oban Executor Features
- One job per trial for fault isolation
- Worker processes handle callbacks safely
- Automatic retry on failure
- Survives node restarts
- Configurable parallelism
## Usage
```elixir
# Local execution
{:ok, result} = Scout.StudyRunner.run(study, executor: Scout.Executor.Local)
# Distributed execution
{:ok, result} = Scout.StudyRunner.run(study, executor: Scout.Executor.Oban)
```
## Implementation Notes
- Executors implement a common behavior/protocol
- Oban executor requires module-based callbacks for durability
- Each trial runs in isolation with its own seed