Use Namedpipes and UnixDomainSockets for ProcessHostService communication
Closed this issue ยท 4 comments
Currently the ProcessHostService
is binding its gRPC service to a port.
Depending on the whole networkstack for this provides more than we need and can be error prone (two launchers cannot be started easily when using the same port).
*Note: We can not change the behaviour of Queue and SCU binding. This change only concerns communication between the Launcher Monarch and Plebeian which currently TCP binds to the
LauncherConfiguration.LauncherPort
.
Solution 1
Since we only have one way communication from the plebeians to the monarch we could use .NET AnonymousPipes for communication. The monarch creates the pipe server and passes the client handle string to the plebeians. We'd probably need to pass JSON messages between plebeian and monarch.
Solution 2
Continue to use gRPC but use unix domain sockets and named pipes.
Go with solution 2.
Named pipes are only supported starting with .net8
Named pipes are only supported starting with .net8
Are we able to use Unix Sockets where supported?