Componente che ha bisogno di dati da un altro componente: interfaccia vs accesso al database

0

Nella nostra architettura abbiamo un paio di componenti che vengono distribuiti come servizio HTTP. Ogni componente ha il proprio database.

Ora ho il componente A che ha bisogno di dati che sono memorizzati nel database di Comonent B. I dati sono una query piuttosto complessa che utilizza Group By, Sum e Count per ottenere una forma aggregata dei dati.

Qual è la migliore descrizione del design qui:

  1. Il componente A ha direttamente interrogato il database B
  2. Implementa un'interfaccia nel componente B che è lì solo per servire i dati necessari al componente A

Dal mio punto di vista:

1:

  • Meno LOC
  • Funziona se B è irraggiungibile, ma il database è ancora attivo
  • Non è necessaria una chiamata HTTP aggiuntiva
  • Se A richiede i dati in un altro formato, non è necessario modificare B

2:

  • Incapsulamento del modello nel database B
  • Chiara responsabilità: ogni componente richiede solo il proprio database
posta wertzui 12.02.2018 - 12:34
fonte

0 risposte

Leggi altre domande sui tag