How We Rabbit at AWeber
summary
AWeber runs RabbitMQ at the core of a decade‑old architecture handling about 75,000 messages/sec on average, using Ansible + RunDeck for deployments, Consul peer discovery for auto‑clustering, and a Python consumer framework with auto‑shutdown and retry TTL/DLX patterns. Postgres changes stream via maku into AMQP (JSON) while most messages use Avro schemas with a registry; a transmogrifier rewrites newer schema versions back to older ones. Monitoring uses Telegraph → Graphite → Grafana; sharded queues use the random exchange for low CPU and even distribution.
AI-written summary · about
chapters (19)
- 0:00Start
- 2:33Event Messages Neurons for a Distributed Application Architecture
- 5:27RPC Messages
- 7:19Transaction Messages
- 9:41Message Serialization
- 10:33AMQP Message Properties
- 11:04Transmogrifier
- 14:13Configuration Management
- 15:01Broker Management Installation, Upgrades, and Configuration
- 16:40Rolling Upgrades Cluster wide upgrades without downtime
- 18:14Runtime Configuration Disaster Recovery for User Managed Objects
- 19:14Monitoring
- 20:12User Management Authentication and Authorization
- 21:34Simple Consumers
- 23:20Queue Naming Make it easy to support your application
- 24:43Sharding Queues Handling High Throughout
- 26:27Handling Processing Errors
- 30:43AMQP Properties Use the Properties, Luke
- 32:52Spinning Messages Consumer Shutdown Behavior
related talks
36mDRb vs. RabbitMQ Showdown
18m"Kafka's Metamorphosis"
16mTo queue or not to queue, that is the question.
54mKeynote: Bringing a Ferrari to a Horse Race
32mBuilding distributed system for retail with RabbitMQ
50m101 Ways to Cook RabbitMQ and the Pipeline Architecture
59mDissecting the Rabbit RabbitMQ internal architecture
39mBuilding an event-driven notification system in Go and RabbitMQ
