Что такое Temporal

«Что такое Temporal» — вопрос из категории Архитектура, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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
}

Используется для сложных бизнес-процессов, где важна отказоустойчивость.