The issue is that its not servicing requests via HTTP, it is sitting in a normal Java application which is being run from the command line. The process itself is single-threaded starting from a static main(). So the only thread in the application is the one started when the application starts.
In the Spring configuration the processEngine is started and I am assuming that in 5.9 for things that receive messages it isn't starting new threads for processes to receive messages so all of the data. So the entire process exists in the context of a single thread. If I device to write an adapter to convert JMS messages into messages that will be passed to processes, unless I spawn multiple listeners/threads, Activiti is only running within the constraints of the single thread that the application is using.
Outside of JobExecuter which manages threads for timers and such, I don't see Activiti itself spawning any threads. It doesn't bring any threadpool to the table as far as I can tell. So from the prospective of Activiti, I am assuming that it always runs within the context of the Thread which is making calls to it - that it doesn't parallelize anything on its own. Consequently in order to scale activiti I need to bring my own server threading model to Activiti since it doesn't provide one itself… it is itself "as scalable as the threading model you provide it".