A Design Question: Java and The Other Modern Runtimes

I am following the nomad repository GitHub issue #3161 and am posting here. Thanks for the suggestion. :+1:

I came across this thread while investigating the material to use Nomad in a Windows container deployment.

.NET Core (.NET 5) runs as a separate virtual machine, just like Java. I have the same curiosity as other people.

And besides .NET, As far as I know, there are several technologies based on this model. (E.g., runtimes in languages such as Python, Ruby, etc.)

I understood that all runtimes other than Java are advised to use the Docker driver. However, I am also curious about the design reason why a separate driver is provided for Java.

Hi @rkttu :wave:

Not necessarily. Behind the scenes, the Java driver uses most of the same plumbing of the exec driver (or raw_exec if resource isolation is not present). So you can use exec or for other languages. There are also other community task driver plugins for other scenarios.

I don’t know the exact reason, but if I were to guess I would say it’s a mix of user demand and team knowledge. It would be hard for us to build a .NET specific task driver, for example, since we don’t have enough experience with the platform.