Como garantir processamento idempotente de mensagens com o EF Core 11 quando duas instâncias do app consomem a mesma mensagem
A verificação de existência no seu handler não é a proteção que você imagina. Coloque um índice único na tabela de inbox, grave o marcador no mesmo SaveChanges da mudança de negócio e deixe o banco de dados escolher o vencedor. Mais a armadilha do ExecuteUpdate que desfaz tudo isso em silêncio.