Ответ
Temporal — это платформа для оркестрации долгоживущих, распределённых workflow-процессов. Она абстрагирует сложности управления состоянием, таймаутами, ретраями и распределёнными транзакциями.
Ключевые особенности:
- Надёжность: автоматически сохраняет состояние workflow, перезапускает упавшие процессы
- Масштабируемость: горизонтальное масштабирование за счёт разделения workflow и worker'ов
- Языковая поддержка: SDK для Go, Java, Python и др.
Пример на Go:
func MyWorkflow(ctx workflow.Context) error {
ao := workflow.ActivityOptions{StartToCloseTimeout: time.Minute}
ctx = workflow.WithActivityOptions(ctx, ao)
var result string
err := workflow.ExecuteActivity(ctx, MyActivity).Get(ctx, &result)
if err != nil {
return err
}
return nil
}
Используется для сложных бизнес-процессов, где важна отказоустойчивость.