code: protected CompletableFuture<Void> invoke(String actionName, Param... params) {
          Assert.requireNonBlank(actionName, "actionName");
          actionInProcess.set(true);
          return controllerProxy.invoke(actionName, params).whenComplete((v, e) -> {
              try {
                  if (e != null) {
                      onInvocationException(e);
                  }
              } finally {
                  actionInProcess.set(false);
              }
          });
      }
docs: This invokes a action on the server side controller. For more information how an action can be defined in the
  controller have a look at the RemotingAction annotation in the server module.
  This method don't block and can be called from the Platform thread. To check if an server
  
  @param actionName name of the action
  @param params     any parameters that should be passed to the action
  @return a future can be used to check if the action invocation is still running