[HN Gopher] Elixir: Practical Concurrency Cookbook
       ___________________________________________________________________
        
       Elixir: Practical Concurrency Cookbook
        
       Author : akbarnama
       Score  : 89 points
       Date   : 2021-07-24 05:31 UTC (1 days ago)
        
 (HTM) web link (functional.works-hub.com)
 (TXT) w3m dump (functional.works-hub.com)
        
       | atonse wrote:
       | Regarding caching, after years of not using any, we finally ended
       | up using nebulex (with the in-memory cache) and it's been
       | excellent.
       | 
       | The ability to add cache annotations to functions feels really
       | clean.
       | 
       | There's also the ability to have cluster wide state but we
       | haven't set that up yet. We will soon.
        
         | conradfr wrote:
         | Nebulex seems interesting, I may be tempted to replace cachex
         | with it.
         | 
         | It also seems a clean way to fill the lack of integrated cache
         | solution in ecto.
        
       | tylerpachal wrote:
       | In addition to what the offer recommended in the "Scheduling
       | work" section, using the `:timer.send_interval()` can be useful
       | if you want to do something every X seconds, instead of every X +
       | Y seconds, where Y is the time it takes to process the "work"
       | message.
       | 
       | Also I prefer to use `handle_continue` instead of
       | `schedule_work()` style (which in a lot of cases pre-date the
       | introduction of `handle_continue`).
        
       | manusachi wrote:
       | > One of the strengths of GenServers is that they allow us to
       | spin one up per user very easily, so they don't become a
       | bottleneck where the Agent does.
       | 
       | Agent is a special case of GenServer[1]. With the same luck we
       | could spin up an agent per user.
       | 
       | [1] [Agent.start_link/2](https://github.com/elixir-
       | lang/elixir/blob/9137fd1cb2368bb1b...)
        
       | sandwichinvest wrote:
       | Having reliable scheduling in the language itself seems like it
       | would simplify a ton of software that's currently reliant on a
       | lot of message queueing and cron duct tape. Running BEAM in
       | production still scares me, but that's one reason to conquer the
       | fear.
        
         | hmmokidk wrote:
         | You may have done it already through RabbitMQ.
         | 
         | Also I want to comment that it is awesome and I love it. It's
         | simple and effective. OTP being bundled into the language is
         | really very brilliant.
        
         | mattbaker wrote:
         | I'm always curious to learn about things that make people
         | cautious to run the BEAM in production. What makes it scary for
         | you?
        
       ___________________________________________________________________
       (page generated 2021-07-25 23:01 UTC)