Orchestrator (Device Interaction Runner)

Recently Updated Python

Contents

Concept

Orchestration engine for coordinating device interactions across real and testbed networks. Executes runs with retries, timeouts, bounded concurrency, and durable artifacts (logs, results, snapshots). Uses Device Interaction Framework as a library for transports, parsing, and test primitives — the orchestrator owns run coordination, persistence, and event streaming.

Inspired by Tower/AWX-style job execution, but purpose-built for reliable, replayable device runs with clean integration boundaries.


Architecture

The runner exposes an HTTP API as a headless execution engine. Clients (Network Automation Workbench, CLI, CI pipelines) submit device workflows as declarative YAML. The engine handles:


Features


Quick Facts

   
Status Recently Updated
Stack Python

What This Is

An orchestration runner for coordinating device interactions across real/testbed networks. It executes runs with retries, timeouts, bounded concurrency, and durable artifacts (logs, results, snapshots) that plug into the broader automation ecosystem.

v1 is explicitly device-focused and uses [deviceinteraction](../deviceinteraction) as a library for transports/parsing/test primitives. The orchestrator owns run coordination, persistence, and event streaming.

This is inspired by Tower/AWX-style job execution, but it is purpose-built for our use case: reliable, replayable device runs with clean integration boundaries and a clear path to future expansion (including broader workflow graphs) without making AI a dependency.


Core Value

Run the same device workflow reliably across lab/real targets, with deterministic execution semantics and replayable artifacts.


Requirements


# Validated

(None yet — ship to validate)


# Active


# Out of Scope


Context


Constraints


Key Decisions

Decision Rationale Outcome
API-first service Align with engine role; enables multiple clients (Workbench/CLI/CI) — Pending
Device-first scope (v1) Prevent scope creep; ship a useful runner for device interactions — Pending
Use [deviceinteraction](../deviceinteraction) as a library Avoid duplicating transports/parsers; keep clean ownership boundaries — Pending
Workflow definitions Start simple; add YAML and/or Python SDK as needed — Pending

Future Direction (Explicitly Not v1)

Last updated: 2026-02-22 after initialization


Current Status

2026-03-05 - Completed 02-05-PLAN.md