In computing, queues are used everywhere. They are used for doing asynchronous work for insuring your ability and manageability of complex applications and processes.
They are a core component of distributed systems.
Oren Eini, Database Developer and Microsoft MVP talks about using RavenDB as a queuing infrastructure.
He talks about a couple of scenarios:
- Using subscriptions to ensure reliable “at least once” delivery of messages to your system so if a message is sent, it’s processed to make sure that there are no lost messages.
- Distributing load on your system. Like a Starbucks infrastructure where the cashier accepts your order and then sends a message to the queue for multiple baristas who compete to fill these orders.
Oren also discusses the specific RavenDB features that make queuing easy for you:
- How to perform scheduled sends
- The ability to do a delayed send, or delayed receive of messages
- Using pull replication to send messages to the edge where they get picked up and processed, a “distributed messaging” feature you only get with RavenDB