Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Erlang in Anger

    Erlang in Anger

    Lisp & Functional
    Visit site
    Stats for nerds
    24recommend
    41mentions
    27people
    2015–2026years
    80% recommend20% neutral

    Mentions per year

    2015201720192021202320252026

    What Hacker News says

    1. macintuxJun 2026
      I'd also suggest skimming this free ebook: https://erlang-in-anger.com
      thread
    2. macintuxOct 2024
      By the same author, for more advanced topics: https://www.erlang-in-anger.com
      thread
    3. toast0Oct 2024
      If you're debugging an Erlang system, you might want to look at Erlang in Anger. [1] As I recall, it's got more information on debugging real systems.

      Otherwise, the books and references will help you get the syntax and maybe some of the otp system libraries, but the learning part is coming to terms with the core concept of a process as something with a bit of state that reads its message queue and responds. Each process should be fairly simple as it only manages its state and processes one request at a time. Sometimes business requirements make that processing complex. Sometimes processing that request means gathering information from other processes --- this can get complex if there's ordering or consistency requirements; in that case, the least complex option is to make sure all the requests that need consistency among themselves are handled by the same process. If only one process accesses the data and it only processes one message at a time, transactional concerns are easy to manage.

      ETS works a little different under the hood, but think of each table as a process, if you want to read a key, you send it essentially { self(), read, Key} and it replies with the data. Same deal for writes, etc.

      Mnesia is processes that you send messages to, and then that process does what you asked and sends the result back.

      The beauty of an Erlang system is you can get a shell on it, and inspect all sorts of stuff. You can get a list of all the processes, and see how long their message queues are. If something has a long message queue, you can get a copy of the queue and inspect it. If it's a gen_server and it's not totally stuck, you can get a copy of its state.

      You can look at the ETS tables. You can look at the Mnesia tables. You can look at the ETS or DETS tables underneath the ETS tables.

      But you do have to be a little careful sometimes. If you are low on memory, and you get a copy of a big message queue, you could exhaust your memory and kill the whole VM. Many of the old footguns have been disarmed, but Erlang still gives you plenty of ammo to shoot yourself in the foot.

      [1] https://erlang-in-anger.com/

      thread
    4. sphJun 2024
      Then, when you have code in production, https://www.erlang-in-anger.com/ (from the same author)
      thread
    5. tiffanyhJan 2024
      (2014)

      Fred is a big Erlang advocate from 10+ years ago.

      He's written multiple books on Erlang, from his real-world experience, of using it to build Heroku (Erlang underpins much of the original Heroku platform and large pieces still today).

      Much if his writing is influenced by said experience and Erlang native queues.

      https://www.erlang-in-anger.com

      https://learnyousomeerlang.com

      thread
    6. regulation_dJan 2024
      In the first paragraph, Fred mentions and links to Erlang in Anger.

      When I was coming up to speed on the BEAM this was such an amazing resource. The fact that it's free is bananas. In addition to the load management stuff, he also talked about some observability details that are really helpful (like how to more accurately understand CPU load on the BEAM). Highly recommend.

      thread

    Related

    Cover of Learn You Some Erlang For Great Good!
    2010–2025

    Learn You Some Erlang For Great Good!

    Fred Hebert
    89 recommend · 120
    Cover of Erlang and OTP in Action
    2010–2024

    Erlang and OTP in Action

    Eric Merritt
    19 recommend · 38
    Cover of Programming Erlang
    2007–2026

    Programming Erlang

    Joe Armstrong
    69 recommend · 105
    Cover of Elixir in action
    2015–2026

    Elixir in action

    Sas̄a Jurić
    48 recommend · 72
    Cover of Erlang programming
    2009–2024

    Erlang programming

    Francesco Cesarini
    10 recommend · 19
    Cover of On LISP
    2007–2026

    On LISP

    Paul Graham
    192 recommend · 533
    Cover of Programming Elixir
    2013–2023

    Programming Elixir

    Dave Thomas
    40 recommend · 80
    Cover of Learn You a Haskell for Great Good!
    2009–2026

    Learn You a Haskell for Great Good!

    Miran Lipovača
    237 recommend · 456