Mi piacerebbe sapere quali sono i modelli architettonici più comuni per il seguente problema.
L'applicazione Web A ha informazioni su vendite, utenti, punteggio di reattività, ecc. Alcune di queste informazioni sono ad alta intensità di calcolo e hanno una logica di business complessa (ad es. punteggio di responsività).
Sto costruendo un'applicazione separata (B) per le attività di amministrazione interne che modificano i dati nell'applicazione web A e riportano dati dall'applicazione web A.
Per scrivere ho intenzione di usare una api riposante. Per esempio. crea una nuova entità, aggiorna entità, ecc.
Nell'applicazione B mi piacerebbe mostrare alcuni grafici e altri dati aggregati per i 12 mesi precedenti. Sto pianificando di memorizzare i dati aggregati per ogni mese in redis.
Alcuni dati dovrebbero essere aggiornati più spesso, ad esempio ogni 10 minuti.
Posso pensare a 3 modi per farlo.
-
Un'attività pianificata nell'app B che si collega a un'API dell'app A che fornisce alcuni dati aggregati. Quindi l'app B la memorizza in Redis e la usa per visualizzare le pagine. Contro: rende il calcolo complesso all'interno di una richiesta web, richiede molto lavoro, ad es. API server e client, archiviazione, ecc., pros: la logica di business è ancora presente nell'app A
-
Un'attività pianificata nell'app A che aggrega i dati in un processo non Web e li memorizza direttamente in Redis a cui accedere dall'app B.
-
Un'attività pianificata nell'app A che aggrega i dati in un processo non Web e utilizza un'API nell'app B per salvarlo.
Mi piacerebbe sapere se esiste una soluzione architettonica ben nota a questo tipo di problemi e se no quali sono altri pro / contro per la soluzione che ho suggerito?