Let your JavaScript modules talk to each other with asynchronous publish / subscribe – On Node.js and in the browser