5 ms·
What do you mean by pushing it to the limit? And do you have any insight of what’s it’s like to be on call with Elixir? From what I saw it has many great tools
by nazka 4y ago
What do you mean by pushing it to the limit? And do you have any insight of what’s it’s like to be on call with Elixir? From what I saw it has many great tools to debug problem. Also the “it never crashes” is quite appealing.
- bluesnowmonkey 4y agoPushing it in terms of performance and complexity. We have high QPS and need low latency, a few milliseconds to do a lot of work. Baseline performance of nice idiomatic Elixir is good enough mostly for general business logic. Tools like Recon help you find bottlenecks. You can move state off heap into ETS to reduce GC, or share a public ETS table to eliminate inter-process communication. You can dynamically recompile a module at runtime when configuration changes. You can move really hot loops into NIFs. These are all relatively easy once you know how and really good at eliminating bottlenecks. On call is great. Tail latency (p99.9 and up) is great, much better than Java, due to per-process vs stop-the-world GC. Remote console is a superpower, lets you debug in production. Minor flakiness tends to get handled silently be supervised processes crashing and getting restarted. Elixir stuff just pages us much, much less than other languages.