Message queues are primarily used to process activities in parallel to service execution. As an example, for a sign-up service, you might want to send a welcome email to the new user at the end of the service. However, sending an email might take time, and you do not wish to delay the sign-up service but return an immediate response to the user. In this case, you can define a queue to send the welcome email and submit a message to this queue from the sign-up service. The submitted message will be handled by the service assigned to the queue and processed asynchronously.