====== RabbitMQ Handbook ====== ===== 1. Introduction ===== - What is RabbitMQ - Message broker concept - Why RabbitMQ exists - Real-world analogy ===== 2. Core Architecture ===== - Producer - Consumer - Broker - Message - Queue - Exchange - Binding - Routing Key - Virtual Host (vhost) - Channel - Connection ===== 3. Exchange Types ===== - Direct Exchange - Fanout Exchange - Topic Exchange - Headers Exchange - Default Exchange - Use cases - Routing examples ===== 4. Message Flow ===== Producer → Exchange → Queue → Consumer ===== 5. Queue Concepts ===== - Durable queue - Transient queue - Exclusive queue - Auto-delete queue - Queue TTL - Message TTL - Dead Letter Queue (DLQ) - Dead Letter Exchange (DLX) - Priority queue - Lazy queue - Quorum queue - Stream queue - Single Active Consumer ===== 6. Delivery & Reliability ===== - ACK - NACK - Reject - Redelivery - Prefetch / QoS - Retry pattern - Poison message - Idempotency - At least once - At most once - Exactly once (why hard) ===== 7. Persistence ===== - Durable exchange - Durable queue - Persistent message - Disk vs memory - Crash recovery ===== 8. RabbitMQ Clustering ===== - Cluster - Node - Metadata replication - Queue location - Network partition ===== 9. High Availability ===== - Mirrored queue (legacy) - Quorum queue - Leader/Follower - Failover ===== 10. Federation & Shovel ===== - Federation - Shovel - Multi-datacenter ===== 11. Security ===== - Authentication - Authorization - TLS - User permissions - vhost isolation ===== 12. Performance Tuning ===== - Prefetch tuning - Connection/channel pooling - Queue design - Backpressure - Throughput optimization ===== 13. Monitoring ===== - Management UI - Metrics - Queue depth - Consumer lag - Prometheus + Grafana ===== 14. RabbitMQ Patterns ===== - Work Queue - Pub/Sub - Routing - RPC - Saga/Event-driven - Outbox + RabbitMQ - Retry + DLQ - Delay queue ===== 15. RabbitMQ vs Kafka ===== - Architecture - Ordering - Replay - Throughput - Use cases - When to use both ===== 16. RabbitMQ in Go ===== - amqp091-go - Producer example - Consumer example - Clean Architecture integration - Outbox relay ===== 17. Best Practices ===== - Naming conventions - Queue ownership - Retry strategy - Error handling - Scaling consumers - Production checklist [[https://drive.google.com/file/d/1W0w6Au8RTOPfMOx0gRfbPZltjMmcRwa_/view?usp=sharing]]