Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Cowboy maintainership has not been an issue, but there are other options in the Erlang and Elixir ecosystem for webservers, ie elli, chatterbox, and Ace. And to be fair, chatterbox is an Erlang http2 server that has been around for 3 years now. Also please consider blatantly discounting the ecosystem and casting doubt on well-maintained projects isn't a very high value-add to this discussion :)

For other readers: you might choose Erlang or Elixir for web services if you want high scalability with distributed communication for free, which is super important for example when building any real-time web service. It's what allows Phoenix to support millions of channel connections on a single server: https://phoenixframework.org/blog/the-road-to-2-million-webs...

Erlang and Elixir's concurrency model is also unique from what Go offers out of the box in that the way you build applications is via supervised processes with built-in failure recovery.



What does this built in failure recovery mean, functionally?

I mean consider e.g. some code in a standard Rails monolith raises an Exception. The exception bubbles up and is caught by a middleware that displays a status 500 page. Isn't that basically failure recovery too? Or for the same Rails monolith, one worker process hits bad code that eats memory until it is killed by an OOM-killer. Unicorn/puma notices that the worker process is missing and restarts it. Is that more analogous? In either case the request is failed but the server pretty much "recovers", ready to accept new requests.

So what is unique about the supervised processes with built-in failure recovery approach? Or am I viewing this at the wrong level of resolution or something?


Yes you are. You'd need to take a look at what OTP brings to the table of supervised-processes and fault tolerance.

Maybe this can help shed some light on it: http://blog.plataformatec.com.br/2018/04/elixir-processes-an...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: