Attualmente sto creando un'API e implementato alcune azioni di base REST come ottenere, aggiornare, cercare, ecc. Un altro programma che raccoglie i dati deve sincronizzarli con questa API. Il mio attuale pensiero è: quale sarebbe una buona pratica per sincronizzare questi dati?
Alcune informazioni: La quantità di dati che deve essere sincronizzata è diversa tra le applicazioni. Alcuni possono trasferire 100 record al minuto, altri 10k record al minuto. Ci sarà un limite di trasferimento all'ora per mantenere il carico del server bilanciato. Inoltre, le richieste sono firmate con un token per verificare l'autenticità.
Ecco un piccolo elenco di pro / contro che ho creato proprio ora. Non sono sicuro se questi sono veri pro / contro, né sono sicuro che dovrei pesarne alcuni.
Opzione 1 Passa in rassegna questi dati e crea una chiamata API per ogni record.
Pro:
- si integra meglio con l'attuale API REST
- le voci di sincronizzazione non riuscite possono essere messe in coda per un nuovo invio
Contro:
- un sovraccarico maggiore a causa di più chiamate
Opzione due
Crea un pacchetto di tutti quei dati e invia su quel pacchetto in una sola chiamata.
Pro:
- meno spese generali
- una sola query
Contro:
- l'errore di trasferimento può far cadere tutti i dati
- implementazione separata per consentire