Sometimes singleton is actually needed and Node's caching system is not reliable. Even the official docs mentioned it:
Modules are cached based on their resolved filename. Since modules may resolve to a different filename based on the location of the calling module (loading from node_modules folders), it is not a guarantee that require('foo') will always return the exact same object, if it would resolve to different files.
Source: https://nodejs.org/api/modules.html#modules_module_caching_caveats
How do you create a Singleton without relying on Node's cache? Is it even possible?