1. Данные и обработка
Джобы – в одной куче
command bus – команда отдельно, обработчик отдельно, получаем сниженный каплинг
2. Внедрение зависимостей
Джобы – через handle, что лишает нас возможности использовать контекстный биндинг, так как тот работает адекватно только с конструкторами
command bus – конструктор, работает контекстный биндинг и остальные прелести
3. Рефакторинг, смена обработчика
Джобы – или осторожно, или никак, иначе рискуешь просрать сериализованные джобы
command bus – очень просто, меняешь обработчик и никто не замечает
4. Расширение логики
Джобы – надо дописывать рядом другой диспатч джобы, если нужен второй обработчик, или изнутри джобы диспатчить чото дальше
command bus – просто биндишь второй обработчик
5. Конфигурация
Джобы – внутри джобы все конфиги, миддлвары, интерфейсы-маркеры
command bus – все, как правило, лежит в конфигах, включая миддлвары. Интерфейсы-маркеры не нужны.