Most routine steps are executed on the server. They retrieve or update the necessary server data, perform business logic and calculations, and then your application’s screen is re-rendered with the latest server information.
However, you can also specify client-side actions (like showing a hidden widget, for example), which do not make requests to the server. Client-side actions are grouped together in the list of plugins and are clearly labeled as "Client-side".
Usually, your routine will either have all client-side or all server-side steps. In other words, it is either a client-side routine or a server-side routine. However, sometimes it may make sense to mix the two types of steps. This would allow you to enforce client-side validation or to update client-side values before they are sent to the server. Please keep in mind that all client-side steps will occur before control is passed to the server, regardless of how they are arranged in the routine.