Хорошая ссылка здесь - Эффективный Java, Джошуа Блох:
Используйте интерфейсы маркера для определения типов
A интерфейс маркера - это интерфейс, который не содержит объявлений методов, а просто обозначает (или «отмечает») класс, который реализует интерфейс как имеющий некоторое свойство.
Поскольку интерфейс маркера определяет тип, вы можете используйте средство проверки типов, чтобы перехватывать определенные категории ошибок во время компиляции, а не во время выполнения.
Блох предлагает конкретный вопрос: «Могу ли я написать один или несколько методов, которые принимают только объект, имеющий эту маркировку? "
В случае DDD хотели бы вы когда-нибудь написать метод, который принимает только ICommand или IQuery?
После быстрого сканирования примера Хорикова мне не очевидно, что ему нужно определить тип - аннотация или даже комментарий могут быть лучшим выбором.