Thanks for clarifying your use of “clusters”. I assumed in context that you were referring to a sharded cluster, since that is a more challenging environment for working with tailable cursors. Deployment type (standalone, replica set, or sharded cluster) and your version of MongoDB server would be definitely helpful details to include for future questions.
I’d still suggest using the Change Streams API, although the issue with your message queue is more likely related to concurrency than tailable cursors.
Can you provide more detail on how you are using the Node
cluster? Do you have multiple workers watching and processing the same events?
Change streams require a replica set because data change events are based on the replica set oplog. However, you can enable this on a single node (if you don’t have any requirements for redundancy or failover) by converting a standalone to a single node replica set.
To do so, follow the tutorial to Convert a Standalone to a Replica Set without adding any additional members.