Atlassian

Why we chose Kafka for the Trello socket architecture

Mar 30, 2018Sebastian Mayr
Why we chose Kafka for the Trello socket architecture
SummaryAI, from the source post

This post details Trello's migration from RabbitMQ to Kafka for their socket architecture. It explains the previous RabbitMQ implementation, its limitations (especially with network partitions and expensive queue/binding operations), and the problems encountered. The post then compares Kafka with other queuing providers and Kafka drivers, justifying the choice of Kafka and the `node-rdkafka` driver. The new architecture features a master-client model for socket servers, where the master handles filtering of delta updates locally. The migration resulted in improved reliability, reduced costs (5x reduction), and better observability metrics, with a drop in memory usage and an increase in CPU usage due to local filtering. A minor outage during an upgrade due to an improperly set `max_open_file` limit on Kafka servers is also noted.

More from the Atlassian Webhook Delivery Platform trail