Improving Speed of updating List, Reactive App
Application Type
Platform Version


I've been producing a Connect 4 App in Outsystems, that is based on the logic I used in C# as I can't do screen work in C# yet.

It all works, however, it's a bit slow. (A couple of seconds to make a move). Each class, is a separate module and all the logic, to create the grid, save the grid, check if there is a horizontal, vertical or diagonal match is all performed as client actions as I read that was quicker. Weirdly, I've also read "heavy" logic should be on the Server but you should limit interactions with the server. I am also using Client Variables to store the grid, no of columns, rows, the current player etc.

Do I need to transfer some of the logic into Server side logic, instead of client side logic? If so, if it uses client variables, should I use site properties instead?

Is there a rule saying when an action should be client side, and when one should be server side? 

Is having all the different logic in different modules a good idea, ie a module per class.

I have attached a screenshot that shows "my most complex" client side action.



Rank: #311

Can you give us more information about the size of the grid you are using? Also what is inside the GetClientVariables Client action and the CalculateNew_Dir.... action?

Rank: #11380

I am using a 6x7 grid, created by having a list, within a list, created with a structure.

GetClientVariables returns the Client Variables held within other modules

CalculateNewDirection is an action containing a switch statement, which finds how to travel to the next diagonal co-ordinate, dependent on which diagonal direction I am checking the grid (Up to the right, up to the left, down to the right, down to the left. So if Up and right, I move one up, and one right, in the grid.