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.