An asynchronous push message queue proof-of-concept written in Go. This POC makes use of gRPC, protocol buffers, goroutines, and channels.
In this proof-of-concept, the following features of a message queue are attempted to be implemented.
Messages may be kept in memory, written to disk, or even committed to a DBMS if the need for reliability indicates a more resource-intensive solution.
Which applications should have access to these messages?
Message purging policies
Queues or messages may have a “time to live”.
- Add ttl to messages
- Support Dead letter queues
Filtering data so that a subscriber may only see messages matching some pre-specified criteria of interest.
Able to guarantee that a message is delivered at least once, or no more than once.
System should be able to route a message or a queue’s messages.
System should support batching – should messages be delivered immediately? Or should the system wait a bit and try to deliver many messages at once?
A publisher may need to know when some or all subscribers have received a message.