fiskaltrust/middleware-launcher

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?

With the release of net8 we'll update the launcher to net8 and restart this effort. #136

Investigate support for which platforms is dropped and update docs on supported OSs. Add support window to docs (we follow .net LTS).