Ho raggiunto un problema di progettazione / architettura sulla grande applicazione su cui sto lavorando, al punto di scrivere possibili soluzioni su una lavagna. Il nostro prodotto è costituito da un sistema di informazioni client-server la cui implementazione è stata costruita sui paradigmi REST.
Un caso d'uso particolare definisce l'uso di più risorse (molte delle quali disponibili solo lato server) al fine di elaborare i dati in informazioni reali, prima di essere inviati al lato client. Puoi considerarlo come un'enorme elaborazione di risorse interrogate per presentarle in un certo ordine . È quasi come un enorme algoritmo di ordinamento .
Dato che la maggior parte delle risorse utilizzate dall'algoritmo sono disponibili solo lato server (perché non soddisfano altri scopi sul client) e il fatto che è necessaria una grande potenza di elaborazione per eseguirlo, è non è pratico riprodurre questo lato client. Inoltre, per evitare possibili reverse engineering.
Per soddisfare un requisito, dobbiamo implementare l'archiviazione locale sull'applicazione client, il che significa che dovremmo presentare queste informazioni ordinate anche se non è disponibile alcuna rete. Per presentarli, stiamo considerando la possibilità di duplicare la tabella del database per questa risorsa, in una tabella che verrà utilizzata solo per memorizzare i risultati già ordinati.
A questo punto, quali sono i vantaggi e gli svantaggi di questo approccio e quali sono le migliori pratiche che saranno necessarie in considerazione. Sono anche aperto a qualsiasi modello di progettazione, utilizzato per risolvere questo problema, di cui non sono a conoscenza.