Servicerunner, the base library for most of WMF's nodejs based services is unmaintained. Service runner, and its unmaintained dependencies are causing many issues:
- Security issues
- Performance issues - for example, the preq based http requests are no longer required as node natively has these features
- Coding standards - For examples, Promises are native to node these days.
Since cxserver is deployment is based on kubernetes and not baremetal deployments as used to happen many years back, a standard nodejs based service is sufficient.
It should have standard logging(ECS based) and statsd analytics reporting as well.
A node cluster management system such as pm2, nest.js or even just node's native node cluster is required to start/kill threads as required.