Я пытаюсь понять варианты использования дочернего рабочего процесса с Uber Cadence. В чем преимущество дочернего рабочего процесса по сравнению с простым разделением рабочего процесса на функции? У меня есть довольно сложный рабочий процесс, который я рассматриваю для разделения на несколько дочерних рабочих процессов, но я не уверен в плюсах и минусах этого.
Основным ограничением дочернего рабочего процесса по сравнению с размещением всей логики приложения в одном рабочем процессе является отсутствие общего состояния. Родитель и ребенок могут общаться только через асинхронные сигналы. Но если между ними существует тесная связь, может быть проще использовать единый рабочий процесс и просто полагаться на общее состояние объекта.
Я лично рекомендую начинать с реализации одного рабочего процесса, если ваша проблема имеет ограниченный размер с точки зрения количества выполненных действий и обработанных сигналов. Это просто проще, чем несколько асинхронно взаимодействующих рабочих процессов.
Также часто наблюдают, что рабочие процессы — это не просто функции, в них можно использовать всю мощь объектно-ориентированного программирования. Используйте структуры, интерфейсы и другие методы объектно-ориентированного программирования, чтобы разбить логику на более управляемые абстракции.