Oneshot.MakeSourceA function like this should be defined for your plugin:
function! s:rpcrequest(...) abort
let l:job_id = jobstart(['/path/to/exe'], { 'rpc': 1 })
return call('rpcrequest', [l:job_id] + a:000)
endfunctionThen you can invoke s:rpcrequest the same way you would call rpcrequest on a synchronous callback of a persistent plugin.