axelson

axelson

Scenic Core Team

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

Most Liked

jon

jon

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.

jon

jon

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.

mhs

mhs

@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.

Where Next?

Popular in Talks Top

brightball
Since the comments are turned off on the YouTube videos, I’m going to post on talk per day on here for viewing and discussion…starting wi...
New
axelson
ElixirConf 2017 - Building an Artificial Pancreas with Elixir and Nerves - by @tmecklem People with Type 1 ...
New
axelson
ElixirConf 2017 - HTTP 2 Plug to Phoenix Cowboy too - @Gazler In this talk, we will look at the changes in C...
New
axelson
Okay, after many days here is the final post on the Elixir Conf videos. Since there are so many lighting talks I felt that it is better t...
New
axelson
Let’s Talk Process Dictionary - @gregvaughn Well, the first rule of Fight Club, I mean: process dictionary is that we don’...
New
axelson
ElixirConf US 2018 – Docker and OTP: Friends or Foes? – Daniel Azuma (@dazuma) Docker is the hot deployment...
New
AstonJ
File uploads are an essential part of many web applications, but often handling them can be tricky, which explains why they are one of th...
New

Other popular topics Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement