68 points by ronxjansen 4 days ago | 3 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 30 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 1 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 3 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 3 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.