Gestione delle API esterne lente nell'applicazione Web

3

Quindi ho un'applicazione che durante vari passaggi durante il processo di un utente trasmetterà e riceverà dati da API esterne.

Attualmente il modo in cui viene gestito è abbastanza rudimentale. Ci sarà un POST, DELETE o PUT all'app. L'applicazione eseguirà quindi gli aggiornamenti necessari nel DB e invierà qualsiasi informazione alle API che stiamo utilizzando. Dopo aver ricevuto le risposte dal DB e dall'API rispondiamo alla richiesta dell'utente.

Quando ho iniziato con l'applicazione, i servizi esterni che stavamo usando erano piccoli, ma dopo aver lavorato su di esso per alcuni anni, il numero è aumentato. Dopo aver lavorato con un'API particolarmente dolorosa che ha tempi di risposta lenti, sto riscontrando che questa risposta alla richiesta dell'utente sta iniziando a sembrare lenta e dolorosa.

Come si gestisce l'interazione con servizi esterni lenti?

Ora a un livello più alto, so che una soluzione sarebbe implementare un sistema simile a una coda per queste API in cui le chiamate vengono inserite in una coda e un processo / servizio separato le elabora. Aggiorna il DB, spegni gli aggiornamenti API al micro-servizio e chiamalo un giorno. Ci sono altri approcci per gestire questo tipo di situazione?

    
posta AlbertEngelB 07.01.2015 - 18:31
fonte

1 risposta

3

Chiamare l'API esterna in modo asincrono è la soluzione migliore.

Quando fa parte del processo di un utente, è meglio mostrare il feedback che la chiamata è in corso e alcuni indica se la chiamata è terminata e ha avuto esito positivo o negativo una volta ottenuta la risposta. Se possibile, lascia che l'utente fornisca altri input in attesa di feedback sull'API esterna, in questo modo si annulla la sensazione di "lentezza e dolore".

    
risposta data 07.01.2015 - 21:24
fonte

Leggi altre domande sui tag