How to: your first orchestration
From an empty space to a running, durable, parallel program in about ten minutes.
Create your empty space
Open ide.empty-space.io, choose Create your empty space, and type your email. Your space is named from it, like
com.gmail.you; every project you make lives under that package. You need an invite word for now.Make a project
New project (Java), name it (one word, like
album). Its package is your space plus the name:com.gmail.you.album. Python is in progress.Write the orchestrator as plain code
The services it calls are typed fields; the logic is ordinary code. A parallel loop is one annotation.
import jaal.x.Parallel; public class Main extends jaal.x.Service<Integer, Integer> { private jaal.x.Service<Integer, Integer> square; // a hole: answered by a published service @Override public Integer invoke(Integer value) { int n = 3; int[] out = new int[n]; for (@Parallel int i = 0; i < n; i++) { // three iterations, run together int x = value + i; out[i] = square.invoke(x); } return out[0] + out[1] + out[2]; } }As you type, the IDE checks it with the compiler: a line that cannot be made durable is refused by name, with the fix.
Save
Save the file; the check already ran as you type. (Python: its Java is generated on save; running it end to end is in progress.)
Make it an endpoint
Run this answers the typed fields (its "holes") with stubs while you try things out; New endpoint fills each one with a published service.
Deploy and send
Deploy places the endpoint on a node; Send gives it work. Calls that do not depend on each other run together, because the compiler proved they can.
Watch, crash, finish
Every step is recorded as it settles. Stop the node in the middle: start it again and the run finishes, with no settled call repeated. Open the run: its graph and its timeline. Stepping through it: planned.
Where things run
The IDE
Your own cockpit and workspace, in the browser.
The nodes
Plain JVMs that hold no state of their own; the record lives in Postgres.
Engines and leaves
Python code and the CUDA core (on our simulator so far) run in their own processes, called like any service; vLLM, Triton and llama.cpp are being built.