На первом уровне, я думаю, это выглядит как обычная очередь для производства.
Если я вас правильно понимаю, у вас есть очередь.
Процесс A, независимо от имени, помещает вещи в очередь.
Процесс B, независимо от имени, забирает вещи из очереди и обрабатывает их.
Затем вы добавляете дополнительный незначительный усложняющий фактор в этот процесс. A хочет получать уведомления о результатах обработки очереди. Ничего страшного.
Если есть плохая практика, я бы сказал, что это именование классов и использование общего интерфейса. Похоже, они не выполняют аналогичные задачи. Похоже, что они оба работают с одним и тем же классом / объектом (эта очередь).