Being built on the JVM, Clojure uses this to terminate instantly. 0 here indicates successful termination while all other values indicate unsuccessful termination.
0_ means normal termination. Any other integer will result in that value being the exit status of the program. A string will crash the vm and generate a crash report with that as the slogan. The atom abort will cause the runtime system to abort, if that's allowed
For integer Status the Erlang runtime system closes all ports and allows async threads to finish their operations before exiting. To exit without such flushing use you can use erlang:halt( Status, [{flush, false}]).