On a project I worked on we used a bit of a heavy handed method. Our system
was rather distributed, where servers processed messages off of durable
queues. So we took a simplistic approach: Exceptions that bubbled all the
way up to the top level of the application caused a hard exit of the JVM.
I'm curious, how are people in the Clojure community currently dealing with
exceptions? I have a diverse set of questions on this topic.
1.) How many have adopted an Erlang die fast and restart strategy?
2.) How many use something like Supervisor to spin up new JVMs? If not
Supervisor, then
1) no
2) no
3) yes at all cost
4) both, exceptions are logged with context (current bindings, etc)
5) undecided, under close examination however
6) never have to restart, we check what cause the error and correct it
externally if required
most errors are reported immediately, may depend on