AINL + Temporal: best of both worlds
Temporal gives you durable execution, retries, and worker infrastructure. AINL gives you a compact authoring surface, strict validation, and canonical graph IR that compiles once and runs many times without the LLM re-de
AINL + Temporal: best of both worlds
Temporal gives you durable execution, retries, and worker infrastructure. AINL gives you a compact authoring surface, strict validation, and canonical graph IR that compiles once and runs many times without the LLM re-deriving control flow on every run.
You do not have to pick one: from v1.2.5, validate can emit Temporal-shaped Python modules from the same IR that powers the core runtime (current release: v1.3.3).
How it fits
-
Author operational workflows in AINL (monitors, token trackers, SLA checks, bridge-driven workers).
-
Compile with
--strictso reachability and adapter contracts are checked before production. -
Emit when you need Temporal’s worker model:
python3 scripts/validate_ainl.py --strict path/workflow.ainl --emit temporal -o ./out/prefixSee
docs/hybrid_temporal.mdandexamples/hybrid/temporal_durable_ainl/for the intended layout. -
Run activities/workflows with Temporal’s test or production environment; keep
.ainlas the single source of truth and regenerate emit when the graph changes.
What AINL is not replacing
- Temporal’s server, namespaces, visibility, and worker scaling — still Temporal’s job.
- Long-lived human-in-the-loop conversational state — out of scope for strict operational graphs (use adapters + explicit frames).
Tests in this repo
- Optional
temporaliointegration tests emit and exercise emitted code (seetests/test_hybrid_emit_integration.py).
Related
- Hybrid guide — full hybrid story (LangGraph + Temporal +
S hybridhints). - Runner discovery:
GET /capabilities/temporalon the HTTP runner. - From LangGraph to AINL — onboarding from graph-first Python frameworks.
