Вопросы к оркестратору (чек-лист)

Здесь просто список специфических вопросов для оценки оркестраторов (в дополнение к общеизвестным).

  • Если падает задача, то DAG стартует заново? Или продолжаются попытки реализации сценария?
  • Есть ли у задачи настройка, которая определяет возможность безопасной параллельной обработки очереди задачи?
    Очередь появляется при возникновении долга (например, неработоспособности сервиса). Допускаемая обработка очереди задачи: последовательная, параллельная (с возможностью задать ключ и ограничение по количеству работающих экземпляров);
  • Есть ли у задачи настройка, которая позволяет не накапливать очередь запусков?
    Очередь появляется при возникновении долга (например, неработоспособности сервиса). Для сервисов, которые при успешном запуске закрывают весь накопившийся долг, не нужно образовывать очередь ожидания запусков. Максимум 1 запуск может быть в очереди, и только при условии, что предыдущий запуск не завершился. По сути, требуется вариант завершения сценария с учетом оценки долга.
  • Если ли у DAGа персистентный уникальный идентификатор запуска (сохраняющийся после перезапуска), который можно передавать в сервисы из задачи?
    Используется, если нужно гарантировать строго однократное выполнение функции.
  • Можно ли использовать вместо конечной задачи другой DAG?
    Чтобы исключить бойлерплейт.
  • Можно ли настроить схему повторных попыток запуска проваленных задач?
    Первый перезапуск сразу, потом регрессия, потом через фиксированный интервал.
  • Можно ли настроить схему уведомлений после некоторого количества неудачных попыток выполнить задачу (например, после 5-го и 6-го отказа в серии)?
  • Можно ли настроить уведомление об успешном выполнении задачи после серии отказов?

Рефлексия

С помощью оркестратора можно упростить дизайн сервисов, переложив на него типовые финишные коммуникации.

Введение единой формы ответа (JSON) позволит оркестратору понимать, что нужно выполнить.

Разделы формы:

  • x-process-state – раздел с состоянием процесса (JSON)
    Если передано, то оркестратор сохраняет состояние процесса.
  • x-messages – раздел с уведомлениями
    Если передано, то оркестратор передает уведомления сервису доставки.
  • x-process-metrics – раздел с метриками процесса
    Если передано, то оркестратор сохраняет записи в лог.
Начать дискуссию