Visit complete System Design roadmap

← Back to Topics List

Message Queues

Message queues receive, hold, and deliver messages. If an operation is too slow to perform inline, you can use a message queue with the following workflow:

  • An application publishes a job to the queue, then notifies the user of job status
  • A worker picks up the job from the queue, processes it, then signals the job is complete

The user is not blocked and the job is processed in the background. During this time, the client might optionally do a small amount of processing to make it seem like the task has completed. For example, if posting a tweet, the tweet could be instantly posted to your timeline, but it could take some time before your tweet is actually delivered to all of your followers.

  • Redis is useful as a simple message broker but messages can be lost.
  • RabbitMQ is popular but requires you to adapt to the ‘AMQP’ protocol and manage your own nodes.
  • AWS SQS is hosted but can have high latency and has the possibility of messages being delivered twice.
  • Apache Kafka is a distributed event store and stream-processing platform.

To learn more, visit the following links:

Roadmaps Guides Videos About YouTube

roadmap.sh by Kamran Ahmed

Community created roadmaps, articles, resources and journeys to help you choose your path and grow in your career.

© roadmap.sh · FAQs · Terms · Privacy