4 ms·
I feel like the post brushes past the best parts to line the learnings up with container concepts and k8s. The Erlang application/service should not be crashin
by lawik 5y ago
I feel like the post brushes past the best parts to line the learnings up with container concepts and k8s.
The Erlang application/service should not be crashing. A crash happens in a process in a tree of supervisors and each supervisor can have strategies to recover if its child supervisor/process fails.
Supervision in Erlang/BEAM is not just microservice infrastructure with restarts. It handles many types of failures knside the application and only if all mitigations repeatedly fail would we crash all the way up to the trunk of the tree and crash the application. If that happens the Erlang heart should be starting it back up or otherwise invoking some last-ditch mitigation. Or if you run Erlang in a container, that's when you'd have your infrastructural stuff restart it.
Supervision in Erlang is much more granular and not about restarting the entire service.
I think this gives a good view of Erlang resiliency: https://youtu.be/JvBT4XBdoUE https://youtu.be/JvBT4XBdoUE