Skip to main content

The spec

MODEL.md is the normative, language-neutral specification — ilmek/1. Every implementation reproduces it exactly; these docs are the tour, MODEL.md is the law. Where the two disagree, MODEL.md wins.

Section map​

§TopicDocs page
1Vocabulary—
2State & channelsState & channels
3GraphGraph
4Execution — supersteps (BSP)Supersteps
5The journal — durable stepsThe journal
6Interrupts & resume (HITL)Interrupts & resume
7Checkpointer — the memory portCheckpointers
8ContextThe journal
9Graphs as dataGraphs as data
10EventsStreaming
11Surface — canonical names per languagebelow
12ConformanceConformance
13VersioningVersioning
14Dynamic fan-out — sendsend
15Node-directed routing — commandcommand
16Retry & resilienceretry

Surface — names per language​

The same concepts, spelled to each language's idiom (MODEL.md §11):

ConceptTypeScript.NET
define graph (untyped)graph(name).channel(…).node(…).edge(…).router(…)Graph.Create(name).Channel(…).Node(…).Edge(…).Router(…)
define graph (typed)graph(name, schema).node(…)Graph.Create<TState>(name).Channel(s => s.X, …).Node(…)
compile.compile().Compile()
streamstream(g, input, opts): AsyncGenerator<IlmekEvent>g.StreamEvents(input, opts): IAsyncEnumerable<IlmekEvent>
runrun(g, input, opts): Promise<Result>g.RunAsync(input, opts): Task<Result>
resume (one pause)resume(g, answer, opts)g.ResumeAsync(answer, opts)
resume (by id)resumeKeyed(g, answers, opts)g.ResumeKeyedAsync(answers, opts)

Two reserved node names — START (__start__) and END (__end__) — are implicit in every language.