Skip to content
0:00 / 0:00

#phoenixliveview#cars.com#replatforming

ElixirConf 2022 - Zack Kayser - The Launch of Elixir and LiveView at Scale on the New Cars.com

ElixirConf

13K subscribers • 28 videos on Hallway

YouTube
  • Recommended by 5 people: 5 in engineering communities.
  • Presented by Zack Kayser, Software Engineer at Cars.com

Intermediate. Assumes working knowledge.

6.7K views3 years ago5 recommendations

Web developmentDistributed systemsElixir and ErlangVue, Svelte, Angular and othersScaling and large-scale architecture

Zack Kayser shares the lessons and challenges of migrating Cars.com to a high-traffic platform built on Elixir, Phoenix, and LiveView.

Full Title: Roll Cages, Pit Stops, and Victory Laps: The Launch of Elixir and LiveView at Scale on the New Cars.com As software engineers, it is not every day that we are presented with the opportunity to work on a full rewrite and re-platforming of a large-scale legacy system. In June 2021, when we launched the new Cars.com platform to a full production audience, we officially completed a long-running re-platforming process and transitioned to our shiny new platform built on Elixir, Phoenix, and LiveView (not to mention many other goodies provided by the Elixir and BEAM community)! As exciting as the launch was, the bulk of the learning from the launch process still lay before us -- with just a short ramp-up period, we went from taking 0 user traffic in production to handling 100% of the traffic to cars.com and related sites and APIs. This talk is going to focus on some of our biggest takeaways and lessons from the transition to our new platform, and in particular, focus on the lessons learned from the most prominent page of our site that is powered by LiveView. In Part 1, we'll take a look at the "roll cages" that allowed us to pull off this re-platforming successfully. For us, a roll cage is not the metal safety enclosure around a race car but rather the resiliency provided by the BEAM and process architectures that allowed us to keep serving traffic even when our system was under duress and stakes were high. The roll cages couldn't keep us from crashing, but we were glad they were there when the inevitable crashes came. In Part 2, we'll talk about some of the pit stops we made along the way. We'll cover a few of the tweaks and tune-ups we made to our LiveView-powered search results page. Sometimes the tune-ups were exactly what was needed, sometimes, they were misguided, and yet other times, they had little to no impact. Each pit stop, however, did have its own lessons, and that's what I'll share with you here. Finally, we'll close out with the victory lap -- the success story we've built so far, how our team continues to grow and learn, and some reflections on the journey we've been on.

Why it's here

5 people recommend this

What people say. Recommended as a real-world case study of scaling Phoenix LiveView to millions of users.

u/anpeacehin r/elixir • Recommends

On “What’s the most complex LiveView UI you’ve seen?”

It's still on my too watch list, but there's an ElixirConf talk on cars.com shifting to LiveView [ElixirConf 2022 - Zack Kayser - The Launch of Elixir and LiveView at Scale on the New Cars.com]

u/al2o3crin r/elixir • Recommends

On “Examples of polished Phoenix web apps / startups (especially using LiveView)”

`cars.com` replatformed to LiveView a while back - here's a presentation from ElixirConf 2022 about it: [video

u/GreenCalligrapher571in r/elixir • Recommends

On “Advantages of elixr”

LiveView is absolutely being used in the industry. Cars.com and Estee Lauder both have non-trivial amounts of LiveView running public-facing applications with quite a bit of traffic. [Here's a really good talk by Zach Kayser at Cars.com about how they scaled their site up to millions of views using LiveView]. It's still obnoxious to integrate non-trivial JS with LiveView. In those cases, you're probably better off serving up Javascript directly and handling any real-time behavior with sockets/channels. No shame there. I'm keeping an eye on LiveView Native, but haven't had cause to use it yet. There are some pretty cool demos of it, but I'm not yet convinced that it's a better choice to do…

u/Beginning-Lobster575in r/elixir • Recommends

On “Advantages of elixr”

> Is this also being used in the industry. For example: link to this video

u/stillwondering4in r/elixir • Recommends

On “Is LiveView stable for prod?”

There's even been a talk on this topic at this year's ElixirConf: link to this video