Strong dependency and weak dependency between Consumer and producer

Hello All,

I was going through the documentation for Outsystems 11 and was not able to make a difference between the statements made.

https://success.outsystems.com/Documentation/11/Developing_an_Application/Reuse_and_Refactor/Handle_Changes_in_Exposed_Functionality

Incompatible Signature

"If the dependency to the producer is a strong dependency, the change will cause runtime errors only if your consumer module is republished without refreshing the dependency. On the other hand, if the dependency to the producer is a weak dependency, the change will cause runtime errors until you refresh the dependency and republish the consumer module."


For me, in both the cases run time errors will be caused if the dependency is not refreshed and the modules are republished,for both weak and strong dependency.

Is it the point or i am missing any difference?

Thanks,

Indranil

Hello Indranil,

You only have a week dependency between 2 modules if all the references are week dependencies. If you have a single strong dependency you may still incur in runtime errors.

For example, if you are referencing 2 entities, a Rest method and a structure, you shouldn't encounter any error.

However, should you reference a single of the elements below, you will now have a strong dependency and you may encounter runtime errors:

  • Server Actions
  • Client Actions
  • Web and Mobile Blocks
  • Images
  • Resources
  • Scripts
  • Themes
  • Roles
  • Processes
  • Process Activities


Could you please confirm if that case?

Regards,


Hi João,

I think Indranil is referring to the specific wording on that page. It says "on the other hand" but then basically rephrases about the exact same error that will occur:

if (strong and republish-without-refresh) then runtime error

on the other hand, if (weak and !(refresh-and-republish)) then runtime error

It's made worse by the very difficult wording ("if (x) then (y if z)", "if (x) then y until (z and a)"). It could use a rewrite.

Kilian Hekhuis wrote:

Hi João,

I think Indranil is referring to the specific wording on that page. It says "on the other hand" but then basically rephrases about the exact same error that will occur:

if (strong and republish-without-refresh) then runtime error

on the other hand, if (weak and !(refresh-and-republish)) then runtime error

It's made worse by the very difficult wording ("if (x) then (y if z)", "if (x) then y until (z and a)"). It could use a rewrite.


Hi Kilian,

Thanks for your response.Yes i meant exactly what you mentioned.The words are not clear.In fact,your little pseudo snippet was clear to depict the situation as mentioned in words.

João Barata wrote:

Hello Indranil,

You only have a week dependency between 2 modules if all the references are week dependencies. If you have a single strong dependency you may still incur in runtime errors.

For example, if you are referencing 2 entities, a Rest method and a structure, you shouldn't encounter any error.

However, should you reference a single of the elements below, you will now have a strong dependency and you may encounter runtime errors:

  • Server Actions
  • Client Actions
  • Web and Mobile Blocks
  • Images
  • Resources
  • Scripts
  • Themes
  • Roles
  • Processes
  • Process Activities


Could you please confirm if that case?

Regards,



Hi Joao,

Thank you for your response. Actually, i meant what Kilian has replied.

Indranil Dey wrote:

João Barata wrote:

Hello Indranil,

You only have a week dependency between 2 modules if all the references are week dependencies. If you have a single strong dependency you may still incur in runtime errors.

For example, if you are referencing 2 entities, a Rest method and a structure, you shouldn't encounter any error.

However, should you reference a single of the elements below, you will now have a strong dependency and you may encounter runtime errors:

  • Server Actions
  • Client Actions
  • Web and Mobile Blocks
  • Images
  • Resources
  • Scripts
  • Themes
  • Roles
  • Processes
  • Process Activities


Could you please confirm if that case?

Regards,



Hi Joao,

Thank you for your response. Actually, i meant what Kilian has replied.

Thanks for the feedback,


I've already reached out to our team responsible for the documentation to improve it.


Regards,