Отказоустойчивость Erlang (насколько я понимаю) включает использование процессов супервизора для отслеживания рабочих процессов, поэтому, если работник умирает, супервизор может запустить новый.
Как Erlang осуществляет этот мониторинг, особенно в распределенном сценарии? Как можно быть уверенным, что процесс действительно умер? Это сердце бьется? Что-то встроено в среду выполнения? Что, если сетевой кабель отключен - предполагается ли, что другие процессы умерли, если он не может связаться с ними? и т.д.
Я думал о том, как добиться такой же отказоустойчивости и т. Д., Как утверждал Эрланг в JVM (скажем, на Java или Scala). Но я не был уверен, что для этого потребуется поддержка, встроенная в JVM, а также Erlang. Я еще не нашел определения того, как Эрланг это делает, хотя для сравнения.