emulsion
emulsion copied to clipboard
Whole application should stop if any message system throws an error
Currently this code manages the application lifetime: https://github.com/codingteam/emulsion/blob/877144c59a8c8eb3a26b6f69f9b5b6f309ee83ec/Emulsion/Program.fs#L25-L58
As you can see, nothing stops any message system from completely failing (i.e. kill the child async started in startMessageSystem), but the actor system (i.e. the whole app) will still live.
We need to stop the whole application on critical failures (e.g. dead message system).
Take into account that throwing an error from a system.Run is a very unusual event: usually the message system will just restart itself without terminating Run.