- -Manage connections & channels across queues-
- -standardise on async/await, try/catch-
- make routing configuration easy
- message handlers should be small functions
- should receive a message
- return void
- they should raise on failure to process messages - this should terminate the message flow
- hooks to forward new messages to one or more queues
- the configuration should be external to the handler function
- assert exchanges / queues exist and are configured
- pub / sub not rpc
- testable
- readable
- observable
Use cases
- filter a general queue and push valid messages on to a work queue // <- simplest usecase
- from work queue route to handler queues for different types of events (e.g. reponse / error from 3rd party) // config heavy
- delay and reprocess // config light