> Is it possible to hot-reload a stateless function in Clojure without restarting the system?
Sure. But over the years I learned that I don't want to do that unless I'm debugging something, and I'd never do that in a production system anymore.
Like many other things in CL, they seem nice and shiny, and are sometimes beautifully designed (meta-object protocol!), but in practical day to day usage, especially with production systems, it's better to stick to simpler and more understandable tools, and predictable and repeatable deployments. Even if it's "your own thing" (I've been running my own SaaS for >10 years now). That's why I rarely use multimethods, I try not to be too smart and fancy with my code, I comment and document a lot, use ansible for deployments, and never patch production systems (e.g. every update goes through an ansible deployment).
Agreed. This is also my intuition.
By hot-patching you can make a mess of where things are probably.
Even if it is a bit more work, going through a more normal cycle lets you understand what is going on.
So for what I see from other comments and yours REPL is nice for interactive work and root cause debugging but hot-patching a production system, even if powerful, comes with its own set of problems.