DevMarche / eventi

Gestione eventi (c4p, organizzazione logistica, ...)
31 stars 1 forks source link

CQRS + ES + GDPR = Broadway Sensitive Serializer #43

Open matiux opened 2 years ago

matiux commented 2 years ago

Ciao,mi piacerebbe parlare con voi di quanto segue. È un talk che ho già presentato al PUG Romagna e mi piacere farlo girare.

CQRS+ES (Command Query Responsibility Segregation + Event Sourcing) è un pattern che permette la segregazione delle operazioni di lettura da quelle di scrittura, attraverso l'emissione e l'ascolto di eventi al fine di gestire lo stato ultimo di un Aggregato. Gli eventi sono per loro natura immutabili; ciò che è successo in passato, non cambia. Come si può sposare questo principio con la GDPR?

Nello specifico l'art. 17, il diritto all'oblio, dice che l'interessato ha il diritto di ottenere dal titolare del trattamento la cancellazione dei dati personali che lo riguardano senza ingiustificato ritardo e il titolare del trattamento ha l'obbligo di cancellare senza ingiustificato ritardo i dati personali. Ma se un evento non può essere modificato, né tanto meno cancellato, come possiamo garantire questo diritto?

L'idea dietro a Broadway Sensitive Serializer è quella di rendere compliant un sistema CQRS+ES, nello specifico implementato attraverso la libreria Broadway, con il regolamento generale sulla protezione dei dati (GDPR), in particolare con il diritto all'oblio. Il principio base è di creare fin dall'inizio eventi criptati (interamente o parzialmente) attraverso una chiave specifica per ogni Aggregato. Quando un utente chiederà di essere cancellato, verrà cestinata la chiave, rendendo i dati sensibili contenuti nell'evento non più leggibili, ma gli eventi, e quindi tutto lo storico, saranno disponibili e consistenti.

L'idea alla base di questo progetto non riguarda la sicurezza generale o la fuga di dati. L'idea è piuttosto quella di rendere un sistema CQRS+ES conforme al diritto dell'utente di chiedere in qualsiasi momento di essere dimenticato, mantenendo il sistema basato su eventi, consistente. Può essere quindi usata anche in un contesto diverso dalla legge GDPR, dal momento che in pratica non fa altro che decorare il serializzatore di Broadway, dandogli la capacità di criptare e decriptare il payload degli eventi sulla base di alcune strategie.

matiux commented 2 years ago

@massimobiagioli credo che dovresti aprire una nuova issue. Risposte a issue esistenti penso dovrebbero essere inerenti alla issue in questione

massimobiagioli commented 2 years ago

Ops Sorry ... Poi correggo grazie!

Defkon1 commented 2 years ago

@matiux Ciao e grazie per l'interesse! Hai già un mente un formato (talk, workshop, ...), una modalità (presenza, remoto, mista) e una durata stimata dell'intervento?

@massimobiagioli sì, è meglio aprire una nuova issue così non facciamo confusione, grazie!

massimobiagioli commented 2 years ago

@Defkon1 Ciao, aperta una nuova issue, dove ho aggiunto alcuni dettagli, sorry per la confusione creata in questa issue :-)

matiux commented 2 years ago

ciao @Defkon1 Formato direi talk. Alla fine, se c'è interesse, potrei fare vedere anche del codice operativo in PHP Il solo talk dura circa un'ora. Per la modalità online sarebbe più comodo per me. Poi dipende anche da dove si dovrebbe tenere eventualmente fisicamente.