Optimization Plugin Interaction (detailed)

Below you will find a detailed sequence diagram of the plugin-to-plugin interactions between the coordinator plugin and the Objective Function Plugins and Minimizer Plugins that the user chose for the optimization.

sequenceDiagram actor User participant Coord participant OF participant Minimizer %% TODO: add every add_step task %%User->>Coord: get /ui-setup/ %%Coord->>User: Coord Setup UI Note over User,Coord: Coord Setup UI User->>Coord: post setup Coord->>Coord: start add_plugin_entrypoint_task Coord->>User: task URL %%Coord->>User: new step: OF setup %%User->>OF: get /ui-hyperparameter/?callback=... %%OF->>User: OF Hyperparameter UI Note over User, OF: OF Setup UI User->>OF: post hyperparameters (callback=...) loop stepID != "pass_data" OF--)Coord: call OF webhook (event=steps) Coord->>Coord: start check_of_steps end Coord->>OF: post data (stepID == "pass_data") OF->>OF: start load_data loop stepID != "evaluate" OF--)Coord: call OF webhook (event=steps) Coord->>Coord: start check_of_steps end Note over User,Minimizer: Minimizer Setup UI User->>Minimizer: post setup loop stepID != "minimize" Minimizer--)Coord: call minimizer webhook (event=steps) Coord->>Coord: start check_minimizer_steps end Note over Coord,Minimizer: start minimization Coord->>Minimizer: post minimize Minimizer->>OF: get "of-weights" OF->>Minimizer: return number of weights loop converged Minimizer->>OF: post "of-evaluate" OF->>Minimizer: return loss end Note over Coord,Minimizer: start cleanup loop status == "PENDING" Minimizer--)Coord: call minimizer webhook (event=steps) Coord->>Coord: start check_minimizer_steps end Minimizer--)Coord: call minimizer webhook (event=status) loop status == "PENDING" OF--)Coord: call OF webhook (event=steps) Coord->>Coord: start check_of_steps end OF--)Coord: call OF webhook (event=status) Coord->>User: present result