Sto lavorando su un'applicazione distribuita e approfondisco le architetture basate su Event con Microservices. Diciamo che ho eseguito due microservizi, CustomerService e AccountService . Entrambi hanno un proprio database e si sono mantenuti sincronizzati con una messaggistica in stile evento con RabbitMQ.
Ad esempio, quando un nuovo utente viene creato in CustomerService , un evento CustomerCreated viene inviato a RabbitMQ. Il AccountService ha un sottoscrittore che ascolta questo evento e crea immediatamente un account per questo utente.
Ora, diversi anni nel futuro, desidero avere un nuovo servizio, MusicListService , che ogni volta che viene generato un nuovo evento CustomerCreated , associare una playlist Musica a tale utente. Ovviamente gli utenti creati in precedenza devono avere anche una playlist vincolata a loro. Ma poiché questo servizio è nuovo di zecca, non ha ricevuto il passato CustomerCreated degli anni precedenti, quindi nessuna playlist sarà vincolata per gli ex utenti a meno che non crei una sorta di script fuori banda che porta il database in uno stato corretto e aggiornato.
Quale sarebbe la migliore strategia di avvio per un nuovo Microservice in modo che rimanga sincronizzata con quelli già esistenti?