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.
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
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.
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
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.
Shubham Agrawal
Advantages -
Disadvantages
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.
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.
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