axelson

axelson

Scenic Core Team

16) ElixirConf 2017 - Cajoling the Bird: How we squeezed more out of Phoenix PubSub- Simon Zelazny

ElixirConf 2017 - Cajoling the Bird: How we squeezed more out of Phoenix PubSub- Simon Zelazny

Grindr is a mobile-only geosocial network with +3M DAU in 137 countries, whose customers send +300M messages a day. The value of the Grindr experience is predicated on accurate indicators of who is online or present at any point.

The chat team at Grindr set out to build a real-time Presence Service, capable of handling hundreds of thousands of concurrent short-lived online sessions, all exchanging info in real-time.

Our talk recounts the story of how we implemented, re-implemented, load tested, optimized, and re-re-implemented the Grindr Presence service, before finally achieving the desired real-world performance characteristics.

We cover in particular: tooling, heuristics, OTP design, and the dirty, dirty workarounds that sometimes save the day. Erlang and Elixir shell snippets will be shared with all.

Our path meanders from the trivial (kernel polling, tuning GC) to the esoteric (BEAM machines with lcnt), to the slightly dodgy (bypassing OTP best practices for raw speed).

The audience will get a chance to see how fun it is to build a minimal load test tool in Elixir, and how to leverage it to target problematic performance hotspots.

Audience: Intermediate-Advanced

All talks are available in the Elixir Conf 2017 Talks List or via the elixirconf2017 tag

Most Liked

josevalim

josevalim

Creator of Elixir

Where Next?

Popular in Talks Top

axelson
ElixirConf 2017 - HTTP 2 Plug to Phoenix Cowboy too - @Gazler In this talk, we will look at the changes in C...
New
axelson
by @chrismccord My summary: Chris gives an update and copious demos of Phoenix LiveView which is now released on hex.pm. Demos on: ...
New
CodeSync
Code Sync: Writing much better tests in Elixir by Xochitl Pérez | Code BEAM Lite Mexico 2023 Comments welcome! View the <span class="has...
New
axelson
ElixirConf 2017 - Managing Tables With Elixir and OTP - Robert Beene We’ve all waited for a table at a resta...
New
axelson
ElixirConf 2017 - Building Realtime Mobile Apps with React Native and Elixir - Osayame Gaius Obaseki Buildin...
New
CodeSync
Code Sync: Celebrating the 10 Years of Elixir | José Valim | ElixirConf EU 2022 Comments welcome! View the #code-sync and #elixirconf-e...
New
CodeSync
Code Sync: Keynote: Gang of None? Design Patterns in Elixir - José Valim | ElixirConf EU 2024 Comments welcome! View the <span class="ha...
New
AstonJ
Keywords: LiveView autocomplete, LiveView search, focus Startups and web developers take note. Phoenix LiveView is the revolutionary fr...
New
New
TwistingTwists
I am in middle of watching this. I have to stop every minute and think over what Chris just said. The amount of info he sends over that ...
New

Other popular topics Top

9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
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
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
Tee
can someone please explain to me how Enum.reduce works with maps
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 49522 488
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
beno
I will often find my self writing things similar to: case some_value do nil -&gt; something() "" -&gt; something() _ -&gt; someth...
New

We're in Beta

About us Mission Statement