Come implementare contesti separati disaccoppiati nell'architettura dei microservizi?

0

Sto leggendo libri e guardo tutorial su architettura e soluzioni di microservizi. Sono fantastici e aiutano molto. Hanno fatto la dichiarazione che condividere modelli di dati tra servizi (contesto) è una cosa malvagia e renderà la mia vita un inferno. Va bene e posso accettarlo. Ma la mia domanda che conta come modelli di condivisione? La mia domanda potrebbe essere strana, ma non riesco a concludere la frase e sfortunatamente non ho ancora trovato un chiaro esempio per questo.

Consentitemi di portare il dominio e il caso su cui sto lavorando. Ho un sistema che ha un modulo spese (dove gestisco i miei guadagni e le mie spese per avere una panoramica sulla mia situazione finanziaria) e c'è un modello di dati master in cui sono gestiti i dati di riferimento.

Una struttura dei dati di spesa semplificata si presenta così:

  • tipo di spesa - campo obbligatorio
  • importo - campo obbligatorio
  • valuta - campo obbligatorio
  • partner (un nome del negozio o fornitore) - campo obbligatorio

La valuta e il partner sono considerati dati di riferimento perché verranno utilizzati in altri moduli del sistema, pertanto la loro posizione è nel modulo dei dati master. A seguito di questo pollice di spese di regola nel modulo di spesa verrà memorizzato come di seguito:

+---------+-------------+---------+----------+
|ExpenseId|ExpenseAmount|PartnerId|CurrencyId|
+---------+-------------+---------+----------+
|1        |200          |124      | 2        |
+---------+-------------+---------+----------+

Dove PartnerId e CurrencyId puntano al di fuori del contesto del servizio. Questa soluzione ha il suo prezzo, ma avere gli stessi dati nel contesto delle spese e nel contesto dei dati master non è desiderabile per me.

Regole riguardanti PartnerId e CurrencyId :   - entrambi sono campi obbligatori

Non ho esperienza in questo argomento, quindi queste domande sono i miei primi passi. E il mio approccio potrebbe essere troppo semplice, ma serve al suo scopo, credo. Cosa ne pensi di questa soluzione? Come risolveresti questo?

Sono felice con questa soluzione e il prezzo che devo pagare. Successivamente, potrei provare l'event sourcing o altre possibili soluzioni.

Successivamente, introdurrò funzionalità di reporting in cui i dati verranno raccolti e archiviati in una struttura denormalizzata. È una storia diversa.

    
posta SayusiAndo 01.08.2017 - 14:30
fonte

0 risposte

Leggi altre domande sui tag