...
| PlantUML Macro | ||
|---|---|---|
| ||
@startuml autonumber participant ApplicationManager participant RialtoServerManager ApplicationManager -> RialtoServerManager: create(state_observer, config) note right: config allows app manager to specify number of preloaded servers, path to RialtoApplicationSessionServer binary, startup timer and heathcheck interval loop For num of preloaded server RialtoServerManager -> RialtoServerManager: Generate socketpair for Rialto Application Session Server to Server Manager communication RialtoServerManager -> RialtoApplicationSessionServer **: Spawn(server_manager_socket) note left Spawn Application Session Servers to speed up app launch time. end note RialtoServerManager -> RialtoServerManager: Start [startup] second READY timer RialtoServerManager --> ApplicationManager: OK/ERROR RialtoApplicationSessionServer -> RialtoApplicationSessionServer: Set current_state = Uninitialised alt RialtoApplicationSessionServer started successfully RialtoApplicationSessionServer -// RialtoServerManager: stateChanged(AppState::Uninitialised) RialtoServerManager -> RialtoServerManager: Cancel READY timer RialtoServerManager --//> ApplicationManager: stateChanged(application_id, AppState::Uninitialised) else Session Server initialisation failed RialtoApplicationSessionServer -// RialtoServerManager: stateChanged(AppState::Error) RialtoServerManager -> RialtoServerManager: Cancel READY timer RialtoApplicationSessionServer -> RialtoApplicationSessionServer !!: Exit process RialtoServerManager --//> ApplicationManager: stateChanged(application_id, AppState::Error) else READY timer expired RialtoServerManager -> RialtoServerManager: Kill spawned Rialto Application Session Server process RialtoServerManager -//-> ApplicationManager: stateChanged(application_id, AppState::Error) end end @enduml |
...