Using Phoenix and Broadway with RabbitMQ to Handle... - Emerson Macedo
ElixirConf 2019 - Using Phoenix and Broadway with RabbitMQ to Handle 10M Monthly Ad insertions on the Biggest Brazillian Used Items Marketplace - Emerson Macedo On this talk, you'll see the challenges to replace a 15 years old C TCP Service, with lots of memory leaks, using a large legacy database and also unsuitable for maintenance. The new Elixir Microservice had to come without service interruption, so there were also rollout challenges with all client platforms like mobile, web, and even mass insertion. Also, we created a CQRS approach to deal with Ad lifecycle events and preserve Ad state. Key Takeaways: Replacing old TCP C service with Phoenix (HTTP) - Ad Insertion Using Broadway to consume Ad lifecycle events and create a snapshot view - Event Sourcing Dealing with legacy database, zero downtime, and the new CQRS / Event Sourcing architecture Challenges and Next Steps