@mobrovac raised the concern that Proton mixes Promise-based and callback-based styles to represent asynchronous code execution. Both the service and the Puppeteer library are Promise-based but the queue is callback-based.
This mixing of styles has led to increased cognitive load when reviewing recent changes to the service, leading to a few avoidable delays.
@mobrovac suggests (and @pmiazga and I, at least, agree) that the queue is rewritten to be Promise-based before the service is fully deployed to production.
AC
- [Queue](https://github.com/wikimedia/mediawiki-services-chromium-render/blob/4606f7e13e5b4e3acee28ae25746b3bbdf13e085/lib/queue.js) is rewritten to use promises internally
- Queue#push returns a promise