Orchestrator Vision: TramAI as a Fully-Fledged Orchestration Platform
Status: Planned Owner: Maintainer Last updated: 2026-05-04
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. However, TramAI remains a JVM library — it cannot schedule workflows, expose them over HTTP, spawn external agents, or run across multiple machines without application code wrapping it.
This document defines a multi-phase effort to transform TramAI from a workflow library into a full-featured orchestration platform that competes with Temporal, n8n, and Airflow in the JVM/AI space — while keeping its core identity: type-safe, testable, observable, and framework-agnostic.
Design Tenets
- Every new module is optional. The core
tramai-orchestrationworkflow DSL must remain usable standalone. New modules add capabilities on top. - Workflows remain typed and testable. No step should require raw prompt strings or untyped state maps.
- External integrations are explicit step types, not magic. Hermes, HTTP, shell, MCP — each is a named step in the DSL.
- MCP is a first-class protocol. Every TramAI workflow is automatically exposable as an MCP server.
- Observability is mandatory at the hook level, optional at the OTel dependency level. Every new module must emit stable TramAI observer events.
Current Gaps (as of v0.2)
| Gap | Why It Matters | Module |
|---|---|---|
| No scheduling/cron | Cannot trigger workflows on a timer | tramai-scheduler |
| No HTTP API | No way for external agents to start/resume workflows | tramai-server |
| No MCP server | Agents cannot discover or call TramAI workflows | tramai-mcp |
| No webhook receiver | Cannot react to GitHub, email, or Slack events | tramai-server |
| No agent spawning | Workflow steps cannot call Hermes, shell, or HTTP | (planned) |
| No per-step timeout | A hanging step stalls the entire workflow | (planned) |
| No per-step retry | Steps fail without retry with backoff | (planned) |
| No distributed workers | Single-JVM only, no horizontal scaling | (planned) |
Current Status (v0.4.x)
The following gaps have been addressed:
| Gap | Module | Status |
|---|---|---|
| Scheduling/cron | tramai-scheduler | Shipped in v0.3.0 |
| HTTP API | tramai-server | Shipped in v0.3.0 |
| MCP server | tramai-mcp | Shipped in v0.3.0 |
| Webhook receiver | tramai-server | Shipped in v0.3.0 |
| Multi-tenancy/auth | tramai-platform | Shipped in v0.3.0 |
| Dashboard | tramai-dashboard | Shipped in v0.3.0 |
Module Architecture (Post-Orchestrator)
tramai-platform (optional: admin UI, plugin system, multi-tenancy, auth)
|
tramai-dashboard (optional: Vue 3 + Vite SPA, served by Spring Boot)
|
tramai-server (optional: REST API, MCP server, webhooks, SSE, OpenAPI)
|
tramai-agent (planned) tramai-scheduler (shipped)
(HTTP, shell, MCP, Hermes) (cron, delay, calendar)
|
tramai-orchestration (core workflow DSL)
aiStep, localStep, gateStep, branchStep, parallelStep
|
tramai-engine | tramai-structured | tramai-core (existing core)
Phases Overview
| Phase | Module | Timeline | Status |
|---|---|---|---|
| Phase 6 | tramai-scheduler | 1-2 weeks | Shipped v0.3.0 |
| Phase 7 | tramai-server | 2-3 weeks | Shipped v0.3.0 |
| Phase 8 | tramai-agent | 2-3 weeks | Planned |
| Phase 9 | tramai-distributed | 3-4 weeks | Planned |
| Phase 10 | tramai-platform | 4-6 weeks | Shipped v0.3.0 (initial) |
Product Positioning
TramAI Orchestrator occupies a unique niche:
| Feature | Temporal | n8n | Airflow | TramAI Orchestrator |
|---|---|---|---|---|
| Runtime | Any (gRPC) | Node.js | Python | JVM (Kotlin/Java) |
| AI-native | No | No | No | Type-safe @AiService |
| Structured output | No | No | No | Built-in |
| MCP protocol | No | No | No | First-class |
| Checkpoint/resume | Best-in-class | No | Yes | Built-in |
| Visual builder | No | Yes | Yes | Phase 10 |
| OpenTelemetry | No | No | No | Built-in |
Target customer: Enterprise Spring Boot teams that want AI orchestration without leaving the JVM ecosystem.
