Ricerca degli eventi e ricerca basata sui criteri

0

Recentemente ho letto molto su Event Sourcing nel mio tempo libero.

Capisco che sia per le situazioni (contesti limitati?) dove l'azienda è interessata a come un'entità è arrivata nel suo stato attuale. L'esempio classico è una banca, che non memorizza il saldo corrente, ma una raccolta di debiti e crediti, che mostra come è arrivato il saldo.

Di recente stavo guardando qualche codice. Si prega di consultare il DDL di seguito:

CREATE TABLE Query (ID int IDENTITY, User ID int,  Salary int, Deposit int, Term int, value int, primary key (ID))

CREATE TABLE Mortgage (ID int, Description VARCHAR(30), primary key (ID))

CREATE TABLE MortgageQuery (QueryID int foreign key references Query (ID), MortgageID int foreign key Mortgage references (ID), PRIMARY KEY (QueryID, MortgageID))

A una Persona vengono offerte ipoteche sulla base del loro Salario; Depositare; termine; valore di casa ecc. (tra gli altri).

Un utente può eseguire query più volte in questo modo:

INSERT INTO Query (UserID, salary, deposit,term,value)
values (1,30000,35000,30,150000)

INSERT INTO Query (UserID, salary, deposit,term,value)
values (1,30000,38000,30,150000)

INSERT INTO Query (UserID, salary, deposit,term,value)
values (1,30000,25000,30,150000)

INSERT INTO Query (UserID, salary, deposit,term,value)
values (1,30000,35000,25,150000)

INSERT INTO Query (UserID, salary, deposit,term,value)
values (1,30000,38000,25,150000)

INSERT INTO Query (UserID, salary, deposit,term,value)
values (1,30000,25000,25,150000)

Si noti che lo stesso utente (1) ha interrogato più volte con criteri diversi ogni volta. Qui non è come se il termine fosse arrivato a 25 anni o il deposito fosse arrivato a 25.000. Pertanto non credo che questo scenario trarrebbe beneficio da Event Sourcing / Event Store. Ho capito bene?

    
posta w0051977 30.07.2018 - 20:21
fonte

1 risposta

3

Have I understood this correctly?

È difficile dirlo, in parte perché stai lavorando dall'implementazione, piuttosto che dal problema che stai cercando di risolvere.

I understand that it is for situations (Bounded Contexts?) where the business is interested in how an entity arrived in its current state.

Quasi; Rappresento che è più corretto dire che si adatta alle situazioni in cui il supporto per le query temporali ha un valore aziendale.

L'approccio comune alla persistenza è che i nostri dati "adesso" sovrascrivano i nostri dati "prima". Ciò limita strongmente il tipo di domande che puoi porre.

Esempi di query temporali

  • Cosa era vero alle 12:34 ieri pomeriggio?
  • Che cosa era vero dopo aver ricevuto 200 messaggi?
  • Ciò che era vero quando abbiamo ricevuto il messaggio {id: 12345}

Se hai bisogno di un analogo familiare - considera un sistema di controllo del codice sorgente ed è in grado di rispondere a domande del tipo "come è apparso questo codice prima che lo rompessi?"

Quindi se le query temporali hanno valore, quindi gli eventi persistenti sono un modo per ottenerlo.

    
risposta data 31.07.2018 - 01:26
fonte

Leggi altre domande sui tag