ElixirConf 2019: Elixir + CQRS - Architecting for Availability, Operability, and Maintainability At PagerDuty - Jon Grieman

by @jon

At PagerDuty, we run our systems across many geographic regions to ensure we’re always available, even when you might not be. Elixir has been our language of choice for the last several years, and we’ve found a number of patterns for architecting services that mesh very nicely with Elixir, OTP and the BEAM - extending Elixir based applications and clusters beyond just distribution within a data center.

This talk looks at the service that powers PagerDuty’s timeline entries, a critical component for understanding what happens during an incident. I will cover how the service is architected for Command Query Responsibility Segregation and the benefits of those choices. These benefits and patterns are well tested, since this is one of the more frequently used services at PagerDuty, and has been running in production for three years.

Attendees will learn about how these considerations for application architecture can help them design for a service that will continue to evolve safely. Rather than focusing on low-level mechanics like generating a new Phoenix app, code layout, and structuring folders, or configuring a library, this talk looks at how big-picture considerations fit together and provides practical considerations around how applications change over time.

View all threads tagged with cqrs
View all elixirconf2019 talks


I’m around here if anyone has questions about the talk!

If you’re intrigued by what you heard, and want to come work with Elixir - Pagerduty is Hiring! - feel free to DM me if you’re interested or have questions.


@jon loved your talk. Are you able to expound briefly on the size of the investment in Elixir at Pagerduty?

Eg: rough number of developers primarily writing Elixir or even just a general sense of how widespread Elixir is in the company present day.


a general sense of how widespread Elixir is in the company present day.

Elixir’s our primary language, and has been for some time now.
There’s still some older services predating our choice of Elixir, but less and less of them as time goes on and things are replaced.

Outside of special cases like our mobile client apps, I don’t believe there’s any team in engineering that doesn’t work with Elixir on a frequent, if not exclusive, basis.