Come si combinano i dati concessi in licenza e l'event-sourcing?

4

Problema ipotetico, ispirato a Come interrogare il Root aggregato per reagire all'evento da un'altra AR Come dovrebbe un'applicazione di origine di un evento gestire i dati, dove può scadere la licenza per tali dati?

Esempio: il modello include informazioni sensibili sulla fatturazione; quando un account viene chiuso, le informazioni di fatturazione per quel cliente devono essere cancellate dal sistema.

Esempio: i dati sono concessi in licenza da un fornitore di terze parti; il contratto specifica che al termine del periodo di licenza, i dati devono essere rimossi.

    
posta VoiceOfUnreason 23.10.2015 - 20:57
fonte

3 risposte

3

Non c'è modo di cancellare i dati da un sistema basato su eventi, quindi l'unico modo è quello di memorizzare i dati sensibili in un altro archivio dati e collegarli in qualche modo.

Ad esempio potresti semplicemente archiviarlo in una tabella diversa se stai usando sql. Scegli di archiviare in modo immutabile e basta fare riferimento ad esso per riga id. Quindi sei libero di cancellare dalla tabella sensibile.

    
risposta data 24.10.2015 - 15:42
fonte
1

Che ne dici di questo:

Quando si verifica l'evento di scadenza, l'oggetto viene caricato tramite lo stato dell'evento, ma successivamente copiato o serializzato su un nuovo oggetto scaduto / archiviato che non contiene le informazioni sensibili.

Questo può quindi essere memorizzato, usando il pattern di sourcing degli eventi, ma con l'archivio al nuovo primo evento, o in qualche altro metodo di sourcing non evento.

    
risposta data 24.10.2015 - 16:10
fonte
0

Sospetto che si tratti di preoccupazioni ortogonali. La rimozione dei dati quando una data è scaduta è un processo di invecchiamento; o i dati vengono rimossi o contrassegnati cancellati da qualche processo programmato, o non attraversano il filtro di sicurezza (che ha come una delle sue regole di non lasciare passare le risorse scadute).

Detto questo, se vuoi guardarlo da una prospettiva guidata dagli eventi, devi semplicemente aggiungere una regola al filtro eventi che inibisce l'attivazione dell'evento se la risorsa è scaduta. Oppure fai un evento che mette la risorsa nel cestino (ipoteticamente).

    
risposta data 23.10.2015 - 22:56
fonte

Leggi altre domande sui tag