To enable decentralized control of engines, we need the mediator to send StartEngine commands to other nodes, rather than starting the engines on the host which the mediator runs on. To that end, we should create a small HTTP server application that wraps the StartEngine command of the runtime
|
func (p *pluginEngineRuntime) StartEngine(engine *engines.EngineDescriptor, spec messages.OperationSpec) (*engines.RunningEngine, error) { |
basically the mediator has a controller/worker architecture, where a client requesting an engine talks to the controller, and the controller talks to the workers that spawn engines.
To enable decentralized control of engines, we need the mediator to send StartEngine commands to other nodes, rather than starting the engines on the host which the mediator runs on. To that end, we should create a small HTTP server application that wraps the StartEngine command of the runtime
CogStream/mediator/pkg/runtime/runtime_plugin.go
Line 155 in 1edfc6b
basically the mediator has a controller/worker architecture, where a client requesting an engine talks to the controller, and the controller talks to the workers that spawn engines.