2

My vendor can log in to a master management system (System A) which manage multiple subscriptions of a SaaS (System B). Each System B is hosted separately on an isolated server. System A and system B communicate through REST API.

My vendor holds the decision to update System B, which lead to multiple version of System B on my side.

Situation:

Vendor 1 > subscription 1 > version 1.0
Vendor 1 > subscription 2 > version 1.1
Vendor 1 > subscription 3 > version 1.2

Now I have the problem to design System A so that it can manage all version of System B.

Since they communicate through API, I'm thinking to add an adapter layer to translate different version of the model from System B.

Adapter for multiple version

However, some models are shared between System A and System B. For example,

  1. System A has the ability to push a new record (Model Z) to all System B.
  2. Model Z in System B version 1.3 has an extra attribute.
  3. When I release System B version 1.3, System A will get the latest Model Z.
  4. When System A need push to system B, it will translate it to match the Model Z in System B.

Now my question is:

  1. Is this a correct practice to manage different version of the server?
  2. Which is the good practice to manage Model Z? Manage through a single source with the different version? Or 2 source for 2 different system, to achieve separation of concern?
kingwei
  • 147
  • 2

0 Answers0