Một message sau khi được polled bởi một consumer, nó trở nên invisible với các consumers khác.
Đó gọi là "Message Visibility Timeout", mặc định là 30 giây (có thể chỉnh sửa)
Sau thời gian timeout đó, message quay trở lại visible
SQS Dead Letter Queue là gì
Mỗi message sẽ có một "Visibility Timeout" sau khi được polled, trong thời gian đó, message được process. Tại đây, sẽ có hai trường hợp xảy ra:
Message được process thành công: => Xóa message ra khỏi queue
Message process thất bại: => Message sẽ quay trở lại Queue và nằm chờ ở đó
Như vậy sẽ có trường hợp vòng lặp vô tận khi:
Message process bị lỗi => Quay trở lại Queue => Process lại message...
Chúng ta có thể config "MaximumReceives", hiểu đơn giản là số lần message sau khi process và vẫn quay trở lại Queue. Nếu vượt quá "MaximumReceives", message bị lỗi đó sẽ tự động gửi đến một Queue khác là Dead Letter Queue (DLQ)
SQS Delay Queue là gì
Mặc định thời gian delay là 0s (message được nhận ngay lập tức)
Chúng ta có thể config thời gian delay để nhận được message (tối đa là 15 phút)
SQS Long Polling là gì
Mục đích của Long Polling là giảm thiểu những response empty từ phía Queue
Khi có một request nhận message, nếu trong Queue không có message nào, SQS sẽ chờ đến khi có message để response lại
WaitTimeSeconds có thể từ 1s-20s
SQS Request-Response Pattern (Virtual queues) là gì
Đây là pattern mà Requester và Responser giao tiếp với nhau bẳng message qua một Virtual Queue
Để có thể implement pattern này cần sử dụng: SQS Temporary Queue Client
SQS FIFO Queue là gì
FIFO = Firt In Firt Out (Message đến đầu tiên được đọc đầu tiên)