WorkerServiceHost a class in a dedicated worker isolate and get a PROXY whose ordinary method sends become RPC over the worker lanes: sticky state with serialized access -- an actor, effectively. Arguments and returns follow the worker data taxonomy (plain data crosses; blocks and instances refuse), errors in the hosted method raise catchably at the call site, and one call runs at a time (concurrent callers queue fairly).
var index = WorkerService.host:'search/index.qn' class:'SearchIndex'; index.add:doc; var hits = index.query:'quoin'
Spawn a worker running the unit at the path, instantiate the named class in it (TheClass.new), and answer the proxy once the service reports ready. Every selector the proxy doesn't define itself (everything except serviceStop) forwards as RPC and parks for the reply, so calls compose with Async.gather: / timeout:do: like any parked wait.
As host:class:, choosing the backing at spawn time: 'thread' (the default) or 'process' (a child qn process -- the escape from the in-process thread ceiling for compute-heavy services).
Stop the service: wait for in-flight calls to finish, send the end-of-service message, and join the worker. Further calls raise 'the service is stopped'. Answers nil.