realcorvus

realcorvus

Elixir Saves Pinterest $2 million/year, other marketing examples?

Hi Everyone,

When discussing the benefits of Elixir with business people a metric that really gets their attention is dollars saved due to a lower cloud bill. Do you know of any example case studies that mention dollar amounts?

I was reading “Adopting Elixir From Concept to Production” recently, and it gives the example of Pinterest saving $2m/year on server costs. This is one of the best case studies I’ve ever seen for Elixir, but couldn’t find anything about it online. Today I published an article on it, Elixir Saves Pinterest $2 Million a Year In Server Costs

The article also mentions this tweet:

Bleacher Report’s case study is also in the article, going from 150 servers to just 8, but that does not have as much impact with business people as dollar amounts, so I did an estimate where one server costs $17k/year, for a savings of over $2m.

I’m aware of https://whyelixirlang.com/, but the examples don’t have dollar amounts. An EMPEX talk about Frame.io (now Adobe) has the following slide (12:00) https://youtu.be/Aa--NDjL9SI?t=723

If the database bill was $1 million a year, that goes down to $90,000. The EC2 spend is 80% down. Again this is an estimate, the talk does not give dollar amounts. Do you know of any examples that mention dollars saved?

Most Liked

dorgan

dorgan

Some additional comments from Steve, which is cited in the Pinterest example:

I wrote both systems, they had identical architectures
They were implementing the same design as well.

Another fun thing is that the java version had a super fun race condition that would cause people’s notifications to appear in another language. The elixir version simply could not break in that way.

It came down to gc. We had a read path and a write path, both were high volume. I simply could not get Java’s gc to work across both reliably and with the desired latency. I spent a solid month reading the gc manuals, optimizing bits of the system, load testing, and deploying the fixes, and it still suffered horrible tail latency. I had to split the read and write paths into separate services. Worse, due to a shoddy exponential backoff implementation on mobile clients, problems with backend data services would cause request amplification, which would overwhelm and take down the service.
Switching to elixir fixed all these problems. Elixir would just absorb the extra requests and slow down a bit. It never fell over.

sodapopcan

sodapopcan

It’s disappointing this didn’t get more traction on HN (currently has a few votes and otherwise dropping down the pages of the “new” section). Seems people are eager to discuss how we use a . to call an anonymous function but not how we save companies tons of money. Ah well :upside_down_face: ¯\(ツ)

dimitarvp

dimitarvp

Somebody posted the link again and now it got much more engagement.

…And of course, some grumpy people immediately jump in to say that Elixir has nothing that everything else has. And that performance gains are accidental. And that this is not about choosing Elixir but moving away from Rails and Python. Etc.

It’s very rich of them to claim hype and evangelization when it’s them who are always extremely quick to barge in and demean Elixir. :003: Without fail, every time, even though Elixir has probably 3-4 posts on the first page of HN a week. If even that many.

Oh well. I am happy to report that…

…and that my desire to argue in such threads gets less and less and I predict that by next year I won’t even bother. We’ll see.

Where Next?

Popular in Discussions Top

pillaiindu
In django there is a cache framework backed by memcached. Rails also puts a lot of emphasis on caching, and even the idea of russian-doll...
New
arpan
Hello everyone :wave: Today I am very excited to announce a project that I have been working on for almost 3 months now. The project is...
New
chuck
Let me start by stating an assumption: Phoenix is a great approach to building REST APIs. There are many reasons for this, but I will ass...
New
AstonJ
Please see the new poll here: Which code editor or IDE do you use? (Poll) (2022 Edition) It’s been a while since we first asked this, I...
208 31265 143
New
CharlesO
Erlang :list.nth simple, but 1 - based nth(1, [H|_]) -> H; nth(N, [_|T]) when N > 1 -> nth(N - 1, T). Elixir Enum.at … coo...
New
marciol
Please, let me know if this kind of discussion already took place in another topic . Hi all, how do you consider if is better to build ...
New
shishini
I think this twitter post and youtube video didn’t get as much attention as I hoped I am still new to Elixir, so can’t really judge ...
New
100phlecs
Are there any downsides, like perf issues, to putting all functional components in CoreComponents as long as you prefix it with the conte...
New
tomekowal
Hey guys! I want to create a toy project that shows a chart of temperature over time and updates every 5 seconds. I feel LiveView is per...
New
joeerl
I’m playing with Elixir - It’s fun. I think @rvirding does give Elixir courses these days. Re: files and database - when I given Erlang ...
New

Other popular topics Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
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
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31013 112
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
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 52673 488
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New

We're in Beta

About us Mission Statement