9 comments

  • chantepierre 4 days ago

    Author here, thanks for sharing ! Happy to answer any questions.

    I think the article outlines it, but I'm at very low scale, with custom development for every client. I mostly build mini-figmas, collaborative or not, that automate specific document pipelines on top of my software, backed by elixir+liveview (or elixir+vue+channels).

  • ipnon 4 hours ago

    Elixir is the best general purpose programming language for distributed systems.

  • fud101 4 hours ago

    I thought elixir devs have cooled on the whole hot reload update or is this different?

    • chantepierre 20 minutes ago

      I'm not using this to update the app itself - which is a docker container that gets updated when I push a new version. I'm simply using the BEAM's code loading capabilities to add client-specific parts to the app while it is running. They are part of the monorepo (and thus part of the app at dev time), but get stripped at build-time so they can be selectively loaded later.

    • thibaut_barrere an hour ago

      Overall, it's not widely used nor pushed (blue green deployments are now very common), but it still has interesting uses.

      For instance, very high availability without blue-green (using a front-end that can be hot-patched), or... musical endeavors (such as live reloading code that generates music, on the go) https://youtu.be/_VgcUatTilU?si=DDfe4FN3Nw9OzRhF&t=122

    • elitepleb 4 hours ago

      Elixir removed a jankier https://www.erlang.org/doc/apps/sasl/appup.html mechanism that defined how state is upgraded or downgraded, while watching a directory and recompiling a module automatically or manually from the repl is still common

      • diggan 4 hours ago

        > while watching a directory and recompiling a module automatically or manually from the repl is still common

        That makes it sound like the "hot" part has been removed then, and it's just basically a "live reload" rather than "hot code loading", is that right? There is no persistent state and you get a fresh one after the automatic compilation happened?

        • elitepleb 3 hours ago

          queued messages stay around in the mailboxes, so no state is lost, but don't get migrated/transformed/versioned via the appup mechanism, unless you opt back into it via libraries for it like https://github.com/ausimian/castle

    • conradfr 4 hours ago

      That seems more about loading dynamic code.