# मैसेज क्यू — System Design: Architecture, Scale और Trade-offs

Source: https://www.skillbyai.com/hi/system-design/sd-queues

> Message queues से producers को consumers से अलग करें, और idempotent consumers व dead-letter queues design करें।

## क्यू क्यों

क्यू (Kafka, SQS, RabbitMQ) तेज़ प्रोड्यूसर को काम सौंपकर आगे बढ़ने देता है। कंज़्यूमर अपनी गति से प्रोसेस करते हैं, स्पाइक सोखते हैं और रीस्टार्ट झेलते हैं।

## डिलीवरी गारंटी

अधिकांश क्यू **एट-लीस्ट-वन्स** डिलीवरी देते हैं, इसलिए कंज़्यूमर **आइडेम्पोटेंट** होने चाहिए — एक ही संदेश दो बार प्रोसेस करना सुरक्षित हो।

## डेड-लेटर क्यू जोड़ें

बार-बार विफल संदेश पाइपलाइन रोकने के बजाय DLQ में जाते हैं। आप उन्हें बाद में जाँचते और रीप्ले करते हैं।

**Quiz:** एट-लीस्ट-वन्स क्यू के कंज़्यूमर आइडेम्पोटेंट क्यों होने चाहिए?

- [ ] संदेश क्रम से बाहर आ सकते हैं
- [x] एक ही संदेश एक से अधिक बार आ सकता है
- [ ] संदेश खो सकते हैं
- [ ] Queues हमेशा messages को size के अनुसार reorder करते हैं

*Answer:* एक ही संदेश एक से अधिक बार आ सकता है. रिट्राई और रीडिलीवरी से डुप्लिकेट आते हैं; आइडेम्पोटेंट हैंडलिंग उन्हें हानिरहित बनाती है।
