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