Zero-downtime Clojure deployments
uswitch.com
uswitch.com
you just bind in the second server. it starts handling requests then you tell the first server to unbind and wait until it finishes handling its requests and then the first server kills itself.
Nginx is useful to stop slow clients attacking app servers, so still a useful layer to have depending on how the clojure app servers handle slow clients, etc.
The article is interesting though.
I love clojure as a language, but my code is usually cli oriented and it was such a terrible fit for it that I switched to Scala. Despite being on the jvm, my startup times are an order of magnitude better.
It's a trickier, if you (must) have persistent connection from client to (app)server and have a state. And a lot trickier, if you will upgrade (big, xxx gigabytes in size) schema or whole relatioanal database.