Microservices
Graph Service (Port 8001)
Manages the FalkorDB property graph.
- POST /clear: Resets the entire graph.
- POST /variables: Creates a new variable node.
- POST /tools: Creates a new tool node.
- POST /connections/input: Connects a variable to a tool (input).
- POST /connections/output: Connects a tool to a variable (output).
- GET /schema: Returns the complete graph schema as a JSON object for translation.
Execution Service (Port 8002)
Runs the GEMSEO problem.
- POST /evaluate: Accepts
inputsand a list of requested output names inobjectives. Retrieves the graph schema (utilizing robust caching with TTL and backoff strategies), handles asynchronous execution via a pre-builtProblemPoolof GEMSEO instances to avoid per-request rebuild overhead, offloads synchronous GEMSEO execution to worker threads, and returns aresultsobject keyed by the requested outputs. Unknown inputs or outputs are rejected before execution. The default demo registry currently exposes theParaboloidtool returning the scalar outputf_xy; additional constrained outputs require extending the registry.
Optimization Service (Port 8003)
Orchestrates the optimization process.
- POST /optimize: Accepts optimization objectives, optional constraints using
<=or>=, and algorithm settings (n_steps,n_init,use_bonsai,parameter_constraints). The service derives design variables from the graph schema using the requested objectives and constraints, then usesBayesianOptimizerwrapping Ax Platform to drive theRemoteEvaluatorconnected to the Execution Service. - Response Shape: Returns
best_parameters,best_objectives, and ahistorylist of explicit trial records, each containingparametersandobjectives. Some deployments may also expose optional metadata such asserialized_client. - Error Mapping: Returns
400for invalid graph-derived optimization requests,502for graph/execution service communication failures or invalid execution responses, and500for optimization execution failures. - Compose Note: In the current
docker-compose.yml,optimization-serviceonly receivesEXECUTION_SERVICE_URL. To use/optimizefrom the containerized service, also setGRAPH_SERVICE_URL=http://graph-service:8001.