பிழைகள் மற்றும் மீண்டும் முயல்வுகளை கையாளுதல் நம்பகமான RabbitMQ நுகர்வோருக்கு முக்கியமாகும் — செய்தி செயலாக்கல் தோல்வியடையும் போது என்ன செய்ய வேண்டும் (மீண்டும் முயல், dead-letter அனுப்ப, அல்லது நிராகரிக்க) என்பதை முடிவு செய்ய வேண்டும். சரியான பிழை கையாளுதல் இழந்த செய்திகளை மற்றும் சிக்கியிருக்கும் நுகர்வோர்களைத் தடுக்கிறது.
பிரச்சனை
When a consumer fails to process a message (bad data, downstream failure, bug):
→ requeue forever → a "poison" message blocks the queue (retried endlessly)
→ discard → message LOST
→ crash → reprocess, possibly stuck again
→ need a deliberate strategy.
மீண்டும் முயல்வு உத்திகள்
✓ NACK + REQUEUE → reject and requeue for retry (but limit retries — don't requeue forever)
✓ RETRY WITH BACKOFF → retry transient failures with increasing delays (e.g. via a delayed
retry queue with TTL → requeue after a delay)
✓ RETRY LIMIT → track attempts; after N failures → DEAD LETTER (don't retry forever)
✓ Distinguish TRANSIENT (retry) vs PERMANENT (dead-letter immediately) failures
