40
Views
2
Comments
Solved
Best way of Architecture composition to ensure small impact when changing Integration
Question


Hi community,

We are currently setting up our architecture, but can't quite figure it out. Below you see a conceptual picture of the devised architecture. As you can see we use Google Sheets to retrieve spreadsheet data. The synchronization part ensures that the data retrieved from the spreadsheet is synchronized in entities. Then there is a server action with which certain data can be retrieved by an end user application. 

So far a short description of the general picture. In the GoogleSheet_IS module the Google Sheets API is called and there is a server action that normalizes the response from the API, so that we can do something with it in the sync mechanism. But now imagine that we move away from retrieving data from Google Sheets, but connect directly to an ERP, which ultimately retrieves the same type of data (But maybe not 100% the same as before). In this simple example, there would then be an ERP Integration application with a module within it that calls the API and normalizes the response again. Now we want to ensure that the impact remains as small as possible. Because the normalization of the API is in the integration piece, I believe that we should always adjust the sync module as well. Is this correct? How do you deal with this, so that the impact remains small and as few modules as possible have to be changed?

If any additional information is needed to give a correct answer, please let me know!

Thanks in advance,

Bart

2024-09-08 11-13-40
Nuno Damaso
 
MVP
Solution

Hi Bart,


Have a look at the transparency patterns at the bottom of the following outsystems best practices documentation:

https://success.outsystems.com/Documentation/Best_Practices/Architecture/Designing_the_Architecture_of_Your_OutSystems_Applications/Integration_Patterns_for_Core_Services_Abstraction


"Because the normalization of the API is in the integration piece, I believe that we should always adjust the sync module as well. Is this correct?" - In my understanding, yes this is correct - every time a new integration is added.


"How do you deal with this, so that the impact remains small and as few modules as possible have to be changed?" - I think you are in the right direction - with the transparency pattern you would only have to add a new integration per new system of records and adjust the Sync accordingly.


I hope it helps,


Nuno

2021-04-12 11-47-04
Bart Nooijens

Hi Nuno,

Thanks for your reply! Sorry, I did forget to mention that I did read the documentation about different integration patterns. 

Internally we we're discussing what was the best way to move forward. After reading the document and the discussion I did have the questions asked above and wanted confirmation we are heading in the right direction. Before we add spaghetti architecture :-).

Thanks,

Bart

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.