Why can't we have side reference in End user module


I am new to Outsystems and trying to understand the architecture design. 

I want to know why can't we have side references in end user module? why can't we have cyclic dependencies and downward dependencies?

Is it because only to keep our application organized and maintain our application performance and speed of interaction?

Rank: #72

Hi Shreelakshmi,

"To ensure that your architecture is sound and that you don’t end up with either a monolith or a spaghetti architecture, you should follow a set of guidelines and recommendations." 

As for the mentioned queries, I would suggest you refer to this well-documented Blog Post for better understanding (I don't want to miss any points in my explanation)  


Kind regards,

Benjith Sam

Rank: #1984

Thanks Benjith Sam.. :) It helped me to understand better

Rank: #56

Hi Shreelakshmi,

Consider taking a look at this lesson on Validating an Architecture.

It will answer all your questions on this topic in a clear manner, but to add more detail to your original question "Why can't we have side reference in End user module", consider the below screenshot from the video:

In the above example, when you change something on the right bottom green foundation, you will have to republish all right-side core modules, EU2 and EU1. Specially, if you have a team working on the EU2 application and all the below modules and they want to deploy it in Production, you may end up having to take EU1 application as well.

This accounts for:

  • Unnecessary dependency from EU1 to EU2 (if you change EU2 or one of its modules, you will need to reflect that in EU1)
  • EU2 and EU1 lifecycles cannot be different (if you deploy EU2, you might need to deploy EU1)
  • Way longer deployment time of EU1 (when deploying EU1, EU2 and below modules also need to be (re)-deployed)

Hope it helps.


Rank: #1984

Thanks João.. :) It helped me to understand better

Rank: #1984

Has Orchestration layer been removed from Outsystems 11 version?

If Yes, why?

Rank: #71


Like it is stated on the videos above the fourth layer was for linking purposes between third layer modules. The thing is, those links are for pages, not for actions. It is very hard for them to be outdated and if you play with Entry Points and SEO Rules you can fix any error that may appear. Therefore such dependencies are called weak dependencies.

By seeing that an extra layer was used to handle a weak dependency, the model was simplified to having only 3, and weak links are not considered a dependency now.

Keep It Simple.