Using Business Processes, where to better place the logic?

Hi! Currently, we are trying to utilize the Processes in our App. I've read the article about separating the process logic from application logic. but it does not really clarify whether the process logic must be placed in a separate module from the application module. Would it be wise to do this?

Solution

Everything has a little to do with the size of the application and the number of users it will have. For example, it is a good practice if you have an application with many hits, and if you have multiple front ends, one of the front ends should be dedicated only to timers and processes, and the other with the rest of the logic, so you don't have any impacts. of performance.


Usually the Processes and Timers are part of the core service layer, as I show you in the picture below.

Regarding your question, I would say it depends on a case by case basis, you do not have to separate the logic, unless you have a large number of processes and timers, and then you might consider doing so, so put that module in that front end the part that spoke to you. Due to the architecture of the 4 layer canvas, inside the Core Services layer, I think the module where you can put it will be in a BL module, since sometimes to build a Process, you need several entities from different CS. If this process of yours only needs things from a CS then I see no reason not to be inside the CS module as well.

Look to this two document:


I hope help you.

Cheers,
Nuno Verdasca

Solution

Nuno Miguel Verdasca wrote:

Everything has a little to do with the size of the application and the number of users it will have. For example, it is a good practice if you have an application with many hits, and if you have multiple front ends, one of the front ends should be dedicated only to timers and processes, and the other with the rest of the logic, so you don't have any impacts. of performance.


Usually the Processes and Timers are part of the core service layer, as I show you in the picture below.

Regarding your question, I would say it depends on a case by case basis, you do not have to separate the logic, unless you have a large number of processes and timers, and then you might consider doing so, so put that module in that front end the part that spoke to you. Due to the architecture of the 4 layer canvas, inside the Core Services layer, I think the module where you can put it will be in a BL module, since sometimes to build a Process, you need several entities from different CS. If this process of yours only needs things from a CS then I see no reason not to be inside the CS module as well.

Look to this two document:


I hope help you.

Cheers,
Nuno Verdasca

I see. Your answer is a huge help, more so with the image that you provided. 

Thanks! I will mark this as the solution.


Regards,
Terence Daquiz

I'm always happy when I can help someone.
Regards,
Nuno Verdasca