I am designing a HA system where I have X number of nodes behind a Load Balancer. I need to make sure that if a process dies in the middle of a task, the information that was being handled by that process is picked up by another one. Let me abstract this a bit: let us say that there are Y processes per physical server, I need to make sure all the information (or most of it) that was being handled by those processes is available to equivalent processes on a separate physical server.
With my limited experience in Elixir (close to none), I was thinking something about these lines: handle all run time information in memory, have a second level of information in mnesia which, I believe, should be able to replicate that information across different physical servers. Finally, to have a third-level information storage that could be a database (relational or not, I have not yet decided) which could be used for more permanent storage to run historical reports and perhaps basic configuration information. This DB could be in the form of a DB cluster (e.g. Oracle RAC).
How does something like that look? Am I firing my shots to the dark here?