intermediate

Command

Представляйте action как object или record, чтобы ее можно было queue, log, retry, authorize, undo или replay.

Command представляет действие объектом или записью для постановки в очередь, логирования, retry, authorization, undo или replay. Лежит в основе job systems, CQRS write models, редакторов и macro automation. Commands должны нести достаточно данных для идемпотентного выполнения.

На интервью: undo/redo или async task queue. Command vs event notification vs вызов функции.

Типовые ошибки: commands лезут в global singletons; нет correlation metadata; undo stacks без восстановления инвариантов.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Command инкапсулирует intent и payload.
  • Handler отделён от места вызова.
  • Idempotency keys для повторов.
  • Audit log истории commands для support.