Вообще мне нравится идея описания исполнения всего кода как графа зависимостей. Но кажется на практике проблемы начинаются на стыке разных либ/приложений?
Ну я в том смысле что у тебя если ты пишешь не на своем языке, а на плюсах, должна быть какая то абстракция над кодом, условный intel tbb, и пропихнуть ее в какие то системы, которые не используют не получится.
У тебя в момент времени X условно произошла ошибка, после которой нужно восстановиться. Но состояние всей системы может находится в промежуточном невалидном виде и соответственно ни к чему нельзя обращаться
Кажется обычно если у тебя на стадии х может произойти ошибка у тебя в графе будет два ребра из х одно типо success другое fail. А ошибки про которые ты ничего не знаешь, решаются только перезапуском подсистемы/всей системы и для большинства систем это кажется ок?
В случае однопоточного приложения - очевидно, порядок инструкций детерминирован. В случае многопоточного уже не очевидно, и решается как известно убого, обычно через барьер ака мутекс для приведения всего к нужному стейту
Ну и есть другие варианты помимо мьютексов/барьеров, ну и идея с графами задач/данных как раз про то чтобы иметь возможность решать это иначе, чем тупо воткнем мьютекс