TramAI - governed AI workflows for Java and Kotlin

Orchestrator Vision: Toward an Orchestration Platform

Status: partially shipped — this page separates what exists in 0.6.0 from what is still open Owner: maintainer


Why This Exists

TramAI is already strong at single typed AI-backed operations via @AiService, and the tramai-orchestration module provides a workflow DSL for composing those operations. Beyond that, the question has always been how far a JVM library should reach into platform territory: scheduling workflows, exposing them over HTTP, calling external agents, and running across multiple machines.

This page records the direction: type-safe, testable, observable, and framework-agnostic at every level — without turning the core runtime into an agent framework.


Design Tenets

  1. Every new module is optional. The tramai-orchestration workflow DSL must remain usable standalone. New modules add capabilities on top.
  2. Workflows remain typed and testable. No step should require raw prompt strings or untyped state maps.
  3. External integrations are explicit step types, not magic. HTTP, shell, Hermes, Codex, and MCP are named steps in the DSL, not hidden side effects.
  4. MCP is a first-class protocol surface. TramAI workflows should be exposable as MCP servers so external agents can call them.
  5. Observability is mandatory at the hook level, optional at the OTel dependency level. Every module emits stable TramAI observer events; tramai-observability maps them to OpenTelemetry when it is on the classpath.

What Has Shipped

CapabilityModuleStatus in 0.6.0
Workflow DSL and checkpoint/resumetramai-orchestrationShipped (preview)
Cron and delay schedulingtramai-schedulerShipped (preview, published)
REST API, webhooks, SSEtramai-serverShipped (internal, not published)
MCP adaptertramai-mcpShipped (internal, not published)
Multi-tenancy, API keys, rate limiting, audittramai-platformShipped (preview, published)
Admin UItramai-dashboardShipped (internal, not published)
External step types (HTTP, shell, Hermes, Codex, MCP, plugins)tramai-orchestrationShipped

Internal classification is not a maturity judgment — it means those modules are not published artifacts, so there is no coordinate for an application to depend on today.


What Is Still Open

GapWhy it mattersWhere it would land
No per-step timeoutA hanging step stalls the entire workflowtramai-orchestration
No per-step retry with backoffSteps fail without a retry optiontramai-orchestration
No agent spawning as a platform serviceWorkflows call external agents through step types, not as a managed service— (no module exists)
No distributed worker pool as a separate moduleMulti-node execution is lease-coordinated, not a distributed runtime— (no module exists)
No visual workflow builderOperators build definitions in code todaytramai-dashboard

None of these are promised for a specific release. Treat this table as the honest boundary of the current design, and see Limitations for the same boundary expressed as consumer-facing constraints.


Module Architecture (Direction)

tramai-platform   (preview, published: tenancy, plugin/runtime policy, audit)
    |
tramai-dashboard  (internal: admin UI)
    |
tramai-server     (internal: REST API, MCP server, webhooks, SSE)
    |
tramai-orchestration  (preview: the workflow DSL)
    aiStep, localStep, gateStep, branchStep, parallelStep, external steps
    |
tramai-engine | tramai-structured | tramai-core

Each layer composes the one below it. Nothing here redefines the core execution model: tramai-engine keeps ownership of provider execution, retries, fallbacks, tool loops, and operation-level observability. The Module Architecture page explains how those directions are enforced rather than merely intended.


Product Positioning

Temporaln8nAirflowTramAI
RuntimeAny (gRPC)Node.jsPythonJVM (Kotlin/Java)
AI-native typed servicesNoNoNo@AiService
Structured outputNoNoNoBuilt in
MCP surfaceNoNoNoAdapter module (internal)
Checkpoint / resumeBest-in-classNoYesBuilt in (top-level step boundaries)
Visual builderNoYesYesNot shipped
OpenTelemetryNoNoNoBuilt in when OTel is on the classpath

Target context: JVM teams — Spring Boot or plain Kotlin — that want typed AI workflows without leaving the JVM ecosystem or adopting a Python-era orchestration model.