Emerson Macedo
Audience: Intermediate, Advanced
Topic: GenServer/Broadway

Using Phoenix and Broadway with RabbitMQ to Handle 10M Monthly Ad insertions on the Biggest Brazillian Used Items Marketplace

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:

  1. Replacing old TCP C service with Phoenix (HTTP) - Ad Insertion
  2. Using Broadway to consume Ad lifecycle events and create a snapshot view - Event Sourcing
  3. Dealing with legacy database, zero downtime, and the new CQRS / Event Sourcing architecture
  4. Challenges and Next Steps

I'm a Software Engineer with more than 21 years of experience. Currently, I work at M4U, the absolute payment leader for credit card transactions of pre-paid credit. Previously, worked at OLX, the absolute marketplace leader for used stuff in Brazil with a significant market share. Also worked at Globo.com, the Internet army of one of the five largest media conglomerates in the world and absolute leader in Latin America. From work experience before Globo.com, I have extensive knowledge in fields of telecommunications, insurance, banking, web portals, amongst others.