Skip to content

Human Task

Gennady Lebedev edited this page May 2, 2020 · 1 revision

Контракт Command => Event обладает интересными свойствами: не обязательно, чтобы Event предоставлял локальный код. Это может быть удаленный код или человек.

Для большей определенности, Command который должен обработать человек называем Human Task, а сервис который обеспечивает вспомогательные действия - User Service.

У Human Task есть особенности:

  • собственно Command, неизменяемая часть - Тип, ID
  • информация для callback, думаю правильно сделать в виде Command => Callback (тип и данные команды однозначно определяют, куда попадет Event)
  • Кто назначен/допущен к исполнению задачи (assignee) - определяется поведением User Service (обычно - может легко меняться, но есть много вариантов)
  • Разные типы команд могут содержать пользовательскую информацию, которая будет меняться со временем
    • имя задачи
    • описание задачи (развернутое)
    • статусы задачи (User Service может накладывать дополнительные ограничения на переходы или вообще автоматически перемещать задачу по сложному ЖЦ и порождать связанные задачи)
    • временные ограничения (когда начать, когда закончить и т.п.)
    • комментарии
    • вложения
    • метки
    • связи с другими задачами и командами

Clone this wiki locally