Since both the classes in the modules subproject and plugins subproject of elasticsearch are subclass of Plugin, I am wondering the difference between elasticsearch plugin and elasticsearch module.
For example the lang-painless module
public final class PainlessPlugin extends Plugin implements ScriptPlugin
public class PythonPlugin extends Plugin implements ScriptPlugin
I got the answer from the source code of class InstallPluginCommand:
/** The builtin modules, which are plugins, but cannot be installed or removed. */ static final Set<String> MODULES;