Difference between client and server action in reactive web app

Hi All,

Can anyone suggest what is the difference between client and server action? What is the advantage of using client action and what is the difference between traditional and reactive web app?

Need some clarification 

Any help will be appreciated. 


Hi,

The client actions run on the device, not on a server. Client Actions are therefore only available for Mobile Apps. 

The server actions are actions that are always executed on the server, both in web and mobile. Since web apps run on the server in their entirety, this is the only available type of action for a web app. When a mobile app calls a server action, it needs to be online. 

Hope it helps :),



Hi,

As Nélio pointed out, client actions is javascript code that runs in the device (either mobile device or desktop browser), whereas server actions is C#/Java code that runs on the server. This difference gives client actions considerable performance advantages over server actions, since the logic can be run locally without having to make a round trip to the server.

Nélio's statement that client actions are only available for mobile apps is incorrect though. With the new Reactive Web capabilities introduced by Outsystems, you can also implement client actions in web apps. Check out these two links for more details on Reactive Web Apps:

https://www.outsystems.com/blog/posts/reactive-web-applications/

https://www.outsystems.com/forums/discussion/52761/reactive-web-the-next-generation-of-web-apps/

Client Action is executed in the Client Side (like your gadget in phone App). In the Web App, you can see that common JavaScript code is running in the client side, executed by Browser.

Server Action is executed in the Server Side (your Outsystems Server) - think that is php engine running on server machine and executes php code - the result (respond) will be returned back to client to be processed by Client Action in the Client Machine.

When u order a pizza  in a restaurant, u are the client that send pizza order (request) to the cook as a server. After processed by the cook, the pizza is sent back to u, and when u eat it - the eat is client action.


regards


Hi Pranav,


They have stated detailed answers already, so I will just add on to it.

  • Client action can be performed offline, while server action cannot.
  • Traditional is synchronous (most of the process, unless explicit AJAX action was made, are done sequentially and is delivered to the client all at once).
  • Reactive is asynchronous (to easily relate think of this as everything is in AJAX by default, and each action are independent from each other and will arrive to the client, mostly, at different times).


Hope this helps!

- Emman

Thank you all for the answers.

Ok so if I call any server action within my client action then it needs to make a call to the server right?

So how exactly does the client action call the server method? Do it makes an ajax call or is there any other js framework used behind?

Solution

Hello Pranav, 

All calls to Server Actions are executed through REST. For each server action, server aggregate, etc, the reactive application will have an end point that is taken care automatically by the platform. 

That is the reason why you can't call from a client action a server action from a traditional web application: they do not have the REST end point. 

Cheers 

Solution

Hi Eduardo,

That makes sense and this is what I wanted to know. Thank you very much 

:)