Limits
Language
Section titled “Language”- TypeScript (
ts.subset.v1): one default-export async function. A missing orundefinedargument uses a call-time default, otherwise it isundefined. Extra arguments are ignored. Explicitnullstaysnull. The program id is the named export, or the file stem when the export is anonymous. - Python (
py.subset.v1): one@programasync function. Extra arguments are a start error. An omitted argument uses a compile-time constant default when one exists, otherwise it is a start error. The program id is the file stem. - Rust (
rust.subset.v1): onepub async fn main. Exact arity, no defaults. A missing argument is a start error. Rust Program ids use the source file stem. Forlib.rsandmain.rs, the Cargo package name is used instead. - Durable operations:
effect,waitForEvent/wait_for_event,sleep,invoke. Rust also hasjoinandrace. They stay in the program entry. - Effect keys and event names are string literals.
- Between durable operations, ordinary computation includes arithmetic, objects, arrays, structs, enums, helpers, closures, and loops. A helper or closure frame cannot perform a durable operation. See Supported language semantics.
- Structured concurrency uses TypeScript
await Promise.all/await Promise.race, Pythonawait gather/await race, and Rustjoin/race. The engine supports groups of 1–32 branches, while the Rust frontend accepts exactly two. See Structured concurrency. - Python
asyncioconcurrency primitives are not supported. TypeScriptPromise.anyandPromise.allSettledare also unsupported. invokepasses the same ordered argument vector a fresh start binds. Resume does not bind again.
Unsupported constructs fail at compile time (compiler_failed or a CLI compile error).
Product
Section titled “Product”- Authenticate Trigora Cloud commands with
TRIGORA_TOKEN; the CLI does not provide atrigora logincommand. - Trigora does not provide generated typed clients.
- Webhook bodies are capped at 1 MiB. Cron schedules are 5-field. A webhook trigger has no static input. See Triggers.
- Waiting Executions do not move to a newly deployed artifact.
Billing
Section titled “Billing”Waiting wall-clock time is not billed separately. Trigora Cloud meters CPU time, durable operations, and durable storage. See Pricing for published rates. No separate payload byte limit is published here.
Recovery
Section titled “Recovery”Recovery resumes from a committed continuation rather than replaying history. It does not provide exactly-once external I/O or guarantee constant-time recovery. See How recovery works and Production considerations.