Process Runtime (REST-Process Mirror)¶
Available since v0.9.3
The process runtime subsystem exposes every class registered in the
process-bigraph link_registry as a stateful, UUID-keyed REST resource.
It mirrors the paradigm from
rest-process —
a sketch that was always intended to inform this integration — and
implements it as a first-class API surface inside Atlantis with full
database persistence.
Concepts¶
Term |
Meaning |
|---|---|
link_registry |
The dict populated by |
instance |
One live instantiation of a registered process, identified by a UUID |
update |
One timestep execution: call |
end |
Terminate an instance and release its memory |
registry |
PostgreSQL audit trail of every initialize/update/end call |
The 42 bigraph-schema primitive types are exposed via GET /compose/v1/types.
The 11 registered processes from pbsim_common and process_bigraph are
each addressable by name.
Quick Demo: MSEComparison¶
No SBML file needed. This walks through the full instance lifecycle.
BASE=https://sms.cam.uchc.edu
# 1. See what's registered
uv run atlantis compose list-types --base-url $BASE
uv run atlantis compose processes --base-url $BASE
# 2. Inspect config schema
uv run atlantis compose config-schema MSEComparison --base-url $BASE
# → {"ignore_nans": false, "columns_of_interest": []}
# 3. Initialize an instance
uv run atlantis compose init MSEComparison --base-url $BASE
# → Process ID: a3f1c2d4-...
# 4. Inspect its ports
uv run atlantis compose inputs MSEComparison a3f1c2d4-... --base-url $BASE
uv run atlantis compose outputs MSEComparison a3f1c2d4-... --base-url $BASE
# 5. Terminate
uv run atlantis compose end MSEComparison a3f1c2d4-... --base-url $BASE
Registered Processes¶
Every process available in the live deployment:
Name |
Package |
SBML required |
Config fields |
|---|---|---|---|
|
|
no |
|
|
|
no |
|
|
|
yes |
|
|
|
yes |
|
|
|
yes |
|
|
|
yes |
|
|
|
yes |
|
|
|
no |
(none) |
|
|
no |
(none) |
|
|
no |
(none) |
|
|
no |
(none) |
CLI Reference¶
# List all bigraph-schema type names (42 types)
uv run atlantis compose list-types --base-url <URL>
# Config schema for a named process or step
uv run atlantis compose config-schema <NAME> --base-url <URL>
# Instantiate; prints the UUID
uv run atlantis compose init <NAME> --base-url <URL>
# Inputs / outputs schemas for an active instance
uv run atlantis compose inputs <NAME> <UUID> --base-url <URL>
uv run atlantis compose outputs <NAME> <UUID> --base-url <URL>
# Run one update step
uv run atlantis compose update <NAME> <UUID> --base-url <URL>
# Terminate instance
uv run atlantis compose end <NAME> <UUID> --base-url <URL>
REST API Reference¶
All endpoints are under /compose/v1/.
Method |
Path |
Description |
|---|---|---|
|
|
List all bigraph-schema type names |
|
|
Config schema for a registered process or step |
|
|
Create instance; returns |
|
|
Inputs schema for an active instance |
|
|
Outputs schema for an active instance |
|
|
Run one update step |
|
|
Terminate instance and release memory |
Initialize request¶
curl -X POST https://sms.cam.uchc.edu/compose/v1/process/MSEComparison/initialize \
-H "Content-Type: application/json" \
-d '{"config": {"ignore_nans": false, "columns_of_interest": []}}'
Response:
{"process_id": "a3f1c2d4-5678-90ab-cdef-1234567890ab"}
Update request¶
curl -X POST https://sms.cam.uchc.edu/compose/v1/process/MSEComparison/update/a3f1c2d4-... \
-H "Content-Type: application/json" \
-d '{"state": {}, "interval": 1.0}'
Process Registry (Persistence + Audit)¶
Every initialize, update, and end call is mirrored to PostgreSQL —
providing a full audit trail and cross-pod observability.
Read-only registry endpoints¶
# All instances (optionally filter by status)
curl https://sms.cam.uchc.edu/compose/v1/process/instances
curl https://sms.cam.uchc.edu/compose/v1/process/instances?status=active
curl https://sms.cam.uchc.edu/compose/v1/process/instances?status=ended
# Full update history for a specific instance
curl https://sms.cam.uchc.edu/compose/v1/process/instances/<uuid>/history
Database tables¶
Table |
Contents |
|---|---|
|
One row per initialized instance (UUID, name, config, status, timestamps) |
|
One row per |
Instance record shape¶
{
"process_id": "a3f1c2d4-...",
"process_name": "MSEComparison",
"config": {"ignore_nans": false, "columns_of_interest": []},
"status": "ended",
"created_at": "2026-05-11T14:30:00",
"ended_at": "2026-05-11T14:30:45"
}
Correspondence with rest-process¶
The Atlantis implementation maps directly to the rest-process sketch:
rest-process endpoint |
Atlantis equivalent |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Atlantis extends this with:
Full database persistence (audit trail, cross-pod observability)
CLI commands (
atlantis compose init/inputs/outputs/update/end)Registry read endpoints (
/process/instances,/process/instances/{id}/history)Integration with the PBG Live Sandbox