Vogliamo progettare una soluzione per la generazione e la convalida del processo OTP (One Time Password). Abbiamo deciso di creare un processo OTP come un micro servizio separato. Poiché OTP deve essere comunicato agli utenti, abbiamo sentito la necessità di creare un micro servizio separato per la comunicazione (SMS, e-mail, ecc.).
Durante la progettazione, ci siamo imbattuti in un problema relativo alla responsabilità del servizio per il binding del modello di messaggio. Siamo venuti con gli approcci seguenti per risolverlo:
- Il servizio OTP avrà la responsabilità di creare e associare modelli di messaggi, in base al servizio che sta chiamando e di passare il messaggio al servizio SMS.
-
È necessario creare un micro servizio modello separato e il servizio OTP chiamerà il servizio modello che restituirà il messaggio al servizio OTP e quindi verrà passato al servizio SMS.
-
Creare un micro servizio di modello separato, ma il servizio di SMS di comunicare con esso. Qui il servizio chiamante avvierà OTP con identificatore e questo identificatore verrà passato al servizio SMS che recupererà il messaggio appropriato dal servizio modello.
Il primo approccio conferisce ulteriore responsabilità al servizio OTP. Il secondo e il terzo approccio separano la responsabilità del modello da un servizio separato, ma non siamo riusciti a raggiungere un consenso sul fatto che il servizio OTP o il servizio SMS dovessero chiamare il servizio modello.
Abbiamo bisogno di sapere quale dei suddetti approcci sembra pertinente e perché?
Informazioni aggiuntive:
- Il servizio SMS non sarà limitato ai soli messaggi OTP. Lo estenderemo anche per inviare altre comunicazioni.
- Il servizio OTP ha già la responsabilità di creare e verificare OTP.
- Se creiamo un micro servizio di modelli separati, lo useremo anche per altre comunicazioni