Une requête d'effacement GDPR, telle que traitée dans une application Symfony/Doctrine, est présentée comme un processus de longue durée et partiellement asynchrone, et non comme une simple opération CRUD. Cette distinction est cruciale car l'effacement des données doit s'étendre à diverses sources, y compris les index de recherche, les caches, et les systèmes externes, qui ne partagent pas une transaction commune avec la base de données principale.
L'approche proposée modélise la requête d'effacement comme une entité de première classe, un "cas" doté d'un cycle de vie. Ce cas suit la progression des différentes étapes d'effacement, chacune étant marquée comme terminée individuellement. L'état de complétion global est déterminé par la vérification que toutes les étapes requises ont été explicitement achevées.
Pour gérer la communication entre la base de données Doctrine et d'autres systèmes, une approche utilisant une machine à états explicite et un mécanisme "Outbox" est recommandée. Cela permet une orchestration fiable, incluant l'idempotence pour chaque étape et une API de statut qui reflète précisément l'état réel du processus, évitant ainsi de signaler une complétion prématurée.