Forge.Measurement.Orchestrator (Forge v0.1.1)
View SourceOrchestrates measurement computation with support for:
- Idempotency via deterministic measurement IDs
- Async execution with Task.Supervisor
- Batch processing for vectorized measurements
- Measurement dependencies and execution ordering
- Version tracking and cache invalidation
- Telemetry integration
Usage
# Compute single measurement
{:ok, :computed, value} = Orchestrator.measure_sample(sample_id, MyMeasurement, [])
# Batch processing
results = Orchestrator.measure_batch(sample_ids, MyMeasurement, [])
# Async execution
task = Orchestrator.measure_async(sample_ids, MyMeasurement, [])
results = Task.await(task)
# With dependencies
{:ok, :computed, value} = Orchestrator.measure_with_dependencies(
sample_id,
MeasurementWithDeps,
[]
)
Summary
Functions
Retrieves a measurement from storage.
Computes measurements asynchronously using Task.Supervisor.
Computes measurements for multiple samples.
Computes or retrieves a measurement for a single sample.
Computes a measurement after ensuring all dependencies are computed.
Functions
Retrieves a measurement from storage.
Options:
:version- Specific version to retrieve (default: latest)
Computes measurements asynchronously using Task.Supervisor.
Returns a Task that can be awaited for results.
Computes measurements for multiple samples.
Respects batch_capable? and batch_size settings for efficient processing.
Returns a list of results in the same order as sample_ids:
{:ok, :computed, value}- Measurement was computed{:ok, :cached, value}- Measurement was cached{:error, reason}- Computation failed
Computes or retrieves a measurement for a single sample.
Returns:
{:ok, :computed, value}- Measurement was computed and stored{:ok, :cached, value}- Measurement was retrieved from cache{:error, reason}- Computation failed
Computes a measurement after ensuring all dependencies are computed.
Performs topological sort of dependencies and computes them in order.
Returns same result format as measure_sample/3.