Hi, yes as you’ve correctly identified, mainly the backend is responsible for loading extensions. Via json-rpc it will notify the frontend of any additional commands, menus, widgets, etc. so that the frontend is able to display them. Extensions will always be running in an isolated plugin host process that communicates with the backend via json-rpc as well. Afaik this is also the way vscode does this.
Any invoked extension code (e.g. via an executed command) is run in this plugin host process. This is true for both Electron and Browser targets.