1. Scaffold
app for a deployable System.
The result is two files: uniac.json (the manifest) and a starter Python file matching your entrypoint.
2. Write the System
A System is a deployable composition. It subclassesuniac.System and declares any dependencies as class-level annotations of type Node. Initialize them in __init__.
app.py
load() reads UNIAC_INIT_* environment variables into __init__ keyword args, constructs the instance, and validates that every annotated Node is set.
Wire up an HTTP handler — Uniac runs whatever your entrypoint command starts, so any framework works.
app.py
3. Run it in the simulator
GET /hello?name=there from the dashboard’s request panel.
4. Add a dependency
Suppose you want a reusable logger. Make it aService (kind=lib) in its own project:
logger/app.py
uniac build in logger/ publishes it to your local store. Then in greeter/, list it under dependencies in uniac.json and run uniac install. Declare and use it:
app.py
self.logger.url points at the live logger service.
5. Deploy
The
endpoint-id (ab12cd above) is stable across redeploys of the same service.6. Inspect
Open the dashboard to see deployments, replicas, and instance state.Where to go next
Concepts
Services, Systems, Nodes, projects, deployments.
The manifest
Every field in
uniac.json.CLI reference
Every command and flag.
SDK reference
Service, System, Node, load, and friends.
