Skip to content

Roger that! Mongo change stream listener with message-queue-like semantics

License

Notifications You must be signed in to change notification settings

alechenninger/roger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

roger

Inspired by psychologist Carl Rogers who coined the term Active Listening. Listening is good, and this library listens.

Also: "Roger that!"

MongoDB change stream listener with message-queue-like (competing consumer) semantics.

Normally, listening to a change stream is more like a topic–that is, each listener receives the change. Additionally, there is no built-in tracking of where you left off. If you...

  • Want your listener to be HA/redundant across multiple processes
  • Do not want to process each change redundantly for each process
  • Want to process changes in order

...then what you want is a queue!

NOTE: This library implements at least once guaranteed delivery, which means it is still possible for a change to be "heard" and processed more than once.

To do this we use a locking algorithm that coordinates multiple listeners.

For more information, see this blog post.

About

Roger that! Mongo change stream listener with message-queue-like semantics

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages