Существует простое решение. Но оно не входит в коробку.
Протоколы, такие как WS-ReliableMessaging (или, в равной степени, TCP / IP), обеспечивают уровень надежности при обмене сообщениями, но все ставки отключаются, как только этот уровень выгружает сообщение на уровень выше.
Таким образом, надежность может быть полностью решена только на самом верхнем уровне - прикладном уровне, а не на каком-либо нижнем уровне стека связи.Это делает бизнес первоклассным, а не чисто техническим.
Проблема может быть решена с небольшим изменением процесса удаления конфиденциальных данных.
Вместо немедленного удаленияпометить для удаления.Затем встроите в бизнес-процессы, которые управляют вашим сервисом, утверждение о том, что клиент должен подтвердить получение конфиденциальных данных.Затем, когда вы получите подтверждение обратно, вы можете безопасно удалить данные, помеченные для удаления, зная, что они были получены.
Я недавно написал сообщение в блоге , полагая, что надежность - это первый классбизнес-проблема, которая не может быть выгружена на нижний уровень.