A RESTful Web Services API was added to the product with XPP 9.3.
It is available, and is distributed for use with any new installation or upgrade as of the XPP 9.3 release.
Replace Web Services with a RESTful API that is URL addressable for XPP functionality.
Low-level "micro" services (toxsf, compose, print, citi, etc) supported by XPP, that can be built upon for more high level customized functionality.
Further on the async/sync thing.
Glad to see that you make a distinction between short and long run calls.
And yes the short run calls can return their result immediately.
But I would suggest that all long run calls by default are executed in async mode and just return a (task) id.
Running these commands in an sync way is just too risky and sooner or later will result in a time out error.
So I would like to suggest to let go on the -nowait option and turn things around.
->Long run commands (like compose) run in an async way by default and XPP just returns a task id.
If you do not want this, you add the -wait option...
Up to engineering to define what calls are executed as 'long'/nowait/async and what calls get executed as short/wait/sync.
I strongly believe that this will result in a lot less 'bad' implementations.