Il mio fornitore può accedere a un sistema di gestione principale (Sistema A) che gestisce più abbonamenti di un SaaS (Sistema B). Ogni sistema B è ospitato separatamente su un server isolato. Il sistema A e il sistema B comunicano tramite l'API REST.
Il mio venditore ha la decisione di aggiornare il Sistema B, che porta alla versione multipla del Sistema B dalla mia parte.
Situazione:
Vendor 1 > subscription 1 > version 1.0
Vendor 1 > subscription 2 > version 1.1
Vendor 1 > subscription 3 > version 1.2
Ora ho il problema di progettare il sistema A in modo che possa gestire tutte le versioni di System B.
Dal momento che comunicano tramite API, sto pensando di aggiungere un livello adattatore per tradurre diverse versioni del modello dal Sistema B.
Tuttavia, alcuni modelli sono condivisi tra il sistema A e il sistema B. Ad esempio,
- Il sistema A ha la possibilità di inviare un nuovo record (Modello Z) a tutto il Sistema B.
- Il modello Z in System B versione 1.3 ha un attributo extra.
- Quando rilascio System B versione 1.3, il sistema A otterrà l'ultimo modello Z.
- Quando il sistema A ha bisogno di spingere al sistema B, lo tradurrà per abbinare il Modello Z nel Sistema B.
Ora la mia domanda è:
- È una pratica corretta per gestire diverse versioni del server?
- Qual è la buona pratica per gestire il Modello Z? Gestire attraverso una singola fonte con la versione diversa? O 2 fonti per 2 sistemi diversi, per ottenere la separazione delle preoccupazioni?