Attualmente sto lavorando a un progetto, dove dovremo mantenere un sistema locale in "sincronizzazione" con un'applicazione remota.
Ad esempio, se un nuovo cliente viene creato nell'applicazione locale, questo cliente deve anche essere creato nell'app remota - tramite un'app di riposo - e l'ID utente "remoto" deve essere memorizzato nell'app locale per un ulteriore utilizzo.
Per avviare la sincronizzazione iniziale, abbiamo iniziato a chiamare l'app remota direttamente quando un utente è stato creato e ha atteso la risposta. Questo approccio ha molti aspetti negativi: uno di questi è che l'utente deve attendere che la chiamata al sistema remoto termini per continuare il suo flusso di lavoro.
Quindi stiamo cercando alternative all'approccio iniziale e broker di messaggi (ad esempio RabbitMQ) potrebbero essere la strada da percorrere.
Ho già effettuato alcune ricerche su RabbitMQ e ho anche saltato il libro di Enterprise Integration Pattern ma non riesco a delineare il seguente esempio flusso di lavoro:
1.) Un account viene creato nell'applicazione locale (deve anche essere creato nell'applicazione remota e l'ID dell'account remoto deve anche essere memorizzato nell'app locale)
2.) Immediatamente dopo la creazione dell'account, viene creato un utente per questo account (deve anche essere creato nell'applicazione remota e l'ID utente remoto deve anche essere memorizzato nell'app locale)
Quando esegui questi due passaggi asincrona, non posso garantire che l'ID azienda dal sistema remoto sia già stata sincronizzata con l'app locale. Quindi forse non sarò in grado di collegare l'utente all'azienda nell'app remota ...
Esiste qualche tipo di schema o qualche approccio di buona pratica a questo problema?
Grazie!