Yandex Cloud
  • Services
  • Solutions
  • Why Yandex Cloud
  • Blog
  • Pricing
  • Documentation
  • Contact us
Get started
Language / Region
Yandex project
© 2023 Yandex.Cloud LLC
Yandex Message Queue
  • Getting started
    • Quick start
    • Supported tools
    • Sample code
      • Python
      • Node.js
      • PHP
      • Celery
      • JMS
      • Laravel
      • Terraform
      • Golang
  • Step-by-step instructions
    • Overview
    • Creating a new message queue
    • Sending messages
    • Receiving and deleting messages
    • Deleting a message queue
    • Monitoring processes in queues
  • Concepts
    • Overview
    • Message queues
    • Messages
    • Deduplication
    • Visibility timeout
    • Long Polling
    • Dead Letter Queue
    • Delay queues
    • Quotas and limits
    • Comparison with Yandex Data Streams
  • Practical guidelines
    • Converting a video to a GIF in Python
  • Access management
  • Pricing policy
  • API Yandex Message Queue
    • Overview
    • Queue
      • CreateQueue
      • DeleteQueue
      • GetQueueAttributes
      • GetQueueUrl
      • ListQueues
      • PurgeQueue
      • SetQueueAttributes
    • Message
      • ChangeMessageVisibility
      • ChangeMessageVisibilityBatch
      • DeleteMessage
      • DeleteMessageBatch
      • ReceiveMessage
      • SendMessage
      • SendMessageBatch
    • Data types
      • BatchResultErrorEntry
      • ChangeMessageVisibilityBatchRequestEntry
      • ChangeMessageVisibilityBatchResultEntry
      • DeleteMessageBatchRequestEntry
      • DeleteMessageBatchResultEntry
      • Message
      • MessageAttributeValue
      • SendMessageBatchRequestEntry
      • SendMessageBatchResultEntry
    • Common errors
  • Public materials
  • Questions and answers
  1. Concepts
  2. Message queues

Message queues

Written by
Yandex Cloud
  • Standard queues
  • FIFO queues
    • Message groups
    • Deduplication on enqueueing

Message queues enable messaging between components of distributed applications. Messages can be sent to queues using the API or any of the supported tools.

Enqueued messages are read by consumers, i.e., applications configured to receive messages from particular queues. Once a message is processed, the consumer deletes it from the queue.

Standard queues

Consumers read messages from a standard queue in random order. Standard queues guarantee that each message is delivered at least once. In rare cases, a message can be received from a standard queue twice.

Use standard queues when you need maximum throughput.

FIFO queues

Messages are read from a FIFO queue in the order that they are received. FIFO queues guarantee exactly-once delivery.

Use FIFO queues if you need strictly ordered message delivery and exactly-once processing.

Message groups

With group IDs, you can send multiple ordered message groups to different consumers within a single FIFO queue. The group ID is specified via the MessageGroupId parameter at sending. Within a single group, all messages are enqueued and processed in the order that they are sent.

Deduplication on enqueueing

FIFO queues deduplicate messages being enqueued by their deduplication ID or content. For more information, see Deduplication.

Note

Yandex Message Queue automatically deletes messages that are in a queue beyond the retention period. The standard message retention period is 4 days. It can be changed within the range of 60 seconds to 14 days. You can change it when creating a queue or by using the SetQueueAttributes method.

Was the article helpful?

Language / Region
Yandex project
© 2023 Yandex.Cloud LLC
In this article:
  • Standard queues
  • FIFO queues
  • Message groups
  • Deduplication on enqueueing