214
Views
7
Comments
Solved
All end user,core module,libary module under one application

Hi All

i am working on one support project.that project is delivered by one partner.when today i saw that they have created one application and under that they have created End User Modules,Core Modules,Libary modules.like below:

i generally follow One application for End User Module and One application for Core Module and one application for library module.

can you please tell me  any advantage for one application and multiple module under one application.i think if we are working for large application and if we dependency it will take time for deployment.


one restriction is there Module size should not greater than 4 mb. and if they are maintaining one application with multiple module then how to handle 4 mb restriction.


2021-03-05 13-56-11
Ricardo Pereira
 
MVP
Solution

Hi,

That takes the application compostion part in the OutSystems Architecture.

"By the book", you have 4 rules to help us decide about our applicatin composition:

Rule #1 - Correctly layer your modules

Rule #2 - Correctly layer your applications

Rule #3 - Don’t mix different owners

Rule #4 - Don’t mix different sponsors

If you check, probably Rules 3 and 4 can make that kind of model to happend (imagine that is something with the same owner or something with the same sponsor). More than one layer inside an aplication (therefore, you have that rule that say that an application have the same layer that the highest module layer inside it) it's possible and can have multiple motives.

I don't know if that use case is supported by this, but it's a good exercise to analyse it and check if really make sense.


There is the link were we can go trough all the info related with application composition rules:

https://success.outsystems.com/documentation/best_practices/architecture/designing_the_architecture_of_your_outsystems_applications/application_composition/the_4_rules_for_correct_application_composition/


Hope this can help.


Best regards,

Ricardo Pereira



2023-06-14 08-52-52
Arkyadeep Bharadwaj

Hi Ricardo Pereira

i have some doubts.i basically follow one module for one application  if it is a large application.if it is small application and only one owner then we can add multiple modules for 3 layer in one application.but it is a banking application.so many owners we have and dependency also is there.if we follow multiple module under one application and if it is a huge application and so many dependency then we will face maintainability issue and Deplyment issue.now it is taking 4 hours to deployment.actually this type of structure is done by one partner now we are going to support that. 

if you give one small example where i can follow one application with multiple module like (End user,Core,libary) and Different application with one module.


as per my knowledge if it is small application with only one owner and not so much dependency then we can create one application and under that we can add all module.


if it is a large factory with many owners and with many dependencies then we should different application with different modules.like Customer End User Application (Customer UI Module),Customer Core Application(Cs and BL) and Libary Application(Theme module) etc.

2021-09-06 15-09-53
Dorine Boudry
 
MVP
Solution

The division of a big factory to make is not on layer per se, but on team/owner/domain, and with an eye on reducing dependencies.

It is defendable to put modules of different layers in the same application, if they happen to be very strongly related.

I would separate out into it's own application the bits that modules of other domains reference, to limit impact of deploying. 

Dorine

2023-08-19 10-24-46
Shubham Agrawal
Solution

Hi @Arkyadeep Bharadwaj,

As per my understanding. this kind of architecture will be helpful when the requirement is small and only single developer is handeling the development and deployment. it makes deployment super easy and also maintainability increases..

But for big applications where are there multiple End user flow and every end users have lots of functionality. then in that case this kind of architecture you may face architecural, deployment and maintainability issues.



Best regards,

Shubham Agrawal

2021-09-06 15-09-53
Dorine Boudry
 
MVP
Solution

The division of a big factory to make is not on layer per se, but on team/owner/domain, and with an eye on reducing dependencies.

It is defendable to put modules of different layers in the same application, if they happen to be very strongly related.

I would separate out into it's own application the bits that modules of other domains reference, to limit impact of deploying. 

Dorine

2022-06-22 04-45-40
Adam Gangrekar

Advantages -

  • Modularity: Each module can be developed independently, which can improve the development process and make it easier to find and fix bugs.
  • Separation of concerns: Each module can be responsible for a specific task or set of tasks, which can improve the overall readability and maintainability of the application.
  • Testability: Each module can be tested independently, which can help to ensure that the application is fully tested before it is deployed.
  • Deployment: Multiple modules can be deployed together or individually, which can give you more flexibility in how you deploy your application.
  • Scalability: Multiple modules can be scaled independently, which can help to improve the performance of the application as it grows.

Disadvantages

  • Complexity: Managing multiple modules can be more complex than managing a single application.
  • Dependencies: Modules can be dependent on each other, which can make it difficult to update or change one module without affecting the others.
  • Overhead: There is some overhead associated with creating and managing multiple modules.

Overall

The advantages of using multiple modules typically outweigh the disadvantages. However, it is important to weigh the factors specific to your application before making a decision.

In general, you should use multiple modules if your application is large and complex, or if you have a team of developers working on the application. You should also use multiple modules if you need to be able to deploy the application in different environments or if you need to scale the application.

Important Note:- "If your application is small and simple, or if you are the only developer working on it, then you may not need to use multiple modules. However, even in these cases, it can be beneficial to use multiple modules to improve the modularity and readability of the application."


Regards,
Adam Gangrekar.

2023-06-14 08-52-52
Arkyadeep Bharadwaj

My question is different.

Suppose we have a large factory.

We are developing one application which has two buisness concepts customer and employee.are u going to create two application like customer and employee and under this two application u r going to create all modules.

Like Customer Application (customer end user,customer core and customer library module)

Employee application(employee end user,employee core and employee lib)

I follow basically every aplication has only one module.

Customer UI(CUSTOMER END USER)

CUSTOMER CORE(CUSTOMER CS)

CUSTOMER LIBARY(CUSTOMER_TH).

Basicall when we are working on poc then we follow multiple application under only one module.

2025-02-10 17-24-13
Arun Rajput

Hi @Arkyadeep Bharadwaj ,

Development perspective I think both the flow is same 1)multiple module in one application or 2)create multiple applications.

But creating only one application with multiple module can be give advantage at deployment time.

1) While deploying application there no need to add dependency application as it's singal only

2) It's easy to role back code of single application instead of multiple.

Thanks

Arun Rajput

2021-03-05 13-56-11
Ricardo Pereira
 
MVP
Solution

Hi,

That takes the application compostion part in the OutSystems Architecture.

"By the book", you have 4 rules to help us decide about our applicatin composition:

Rule #1 - Correctly layer your modules

Rule #2 - Correctly layer your applications

Rule #3 - Don’t mix different owners

Rule #4 - Don’t mix different sponsors

If you check, probably Rules 3 and 4 can make that kind of model to happend (imagine that is something with the same owner or something with the same sponsor). More than one layer inside an aplication (therefore, you have that rule that say that an application have the same layer that the highest module layer inside it) it's possible and can have multiple motives.

I don't know if that use case is supported by this, but it's a good exercise to analyse it and check if really make sense.


There is the link were we can go trough all the info related with application composition rules:

https://success.outsystems.com/documentation/best_practices/architecture/designing_the_architecture_of_your_outsystems_applications/application_composition/the_4_rules_for_correct_application_composition/


Hope this can help.


Best regards,

Ricardo Pereira



2023-06-14 08-52-52
Arkyadeep Bharadwaj

Hi Ricardo Pereira

i have some doubts.i basically follow one module for one application  if it is a large application.if it is small application and only one owner then we can add multiple modules for 3 layer in one application.but it is a banking application.so many owners we have and dependency also is there.if we follow multiple module under one application and if it is a huge application and so many dependency then we will face maintainability issue and Deplyment issue.now it is taking 4 hours to deployment.actually this type of structure is done by one partner now we are going to support that. 

if you give one small example where i can follow one application with multiple module like (End user,Core,libary) and Different application with one module.


as per my knowledge if it is small application with only one owner and not so much dependency then we can create one application and under that we can add all module.


if it is a large factory with many owners and with many dependencies then we should different application with different modules.like Customer End User Application (Customer UI Module),Customer Core Application(Cs and BL) and Libary Application(Theme module) etc.

2021-09-06 15-09-53
Dorine Boudry
 
MVP
Solution

The division of a big factory to make is not on layer per se, but on team/owner/domain, and with an eye on reducing dependencies.

It is defendable to put modules of different layers in the same application, if they happen to be very strongly related.

I would separate out into it's own application the bits that modules of other domains reference, to limit impact of deploying. 

Dorine

2023-08-19 10-24-46
Shubham Agrawal
Solution

Hi @Arkyadeep Bharadwaj,

As per my understanding. this kind of architecture will be helpful when the requirement is small and only single developer is handeling the development and deployment. it makes deployment super easy and also maintainability increases..

But for big applications where are there multiple End user flow and every end users have lots of functionality. then in that case this kind of architecture you may face architecural, deployment and maintainability issues.



Best regards,

Shubham Agrawal

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