anchor.diff:  %% API
   -export([start_link/0, stop/0, get_ip_address/0, refresh_ip_address/0,
       modules/0, listeners/0, cluster_worker_modules/0,
  -    cluster_worker_listeners/0, get_cluster_nodes_ips/0]).
  +    cluster_worker_listeners/0, get_cluster_nodes_ips/0, start_worker/2]).
   -export([single_error_log/2, single_error_log/3, single_error_log/4,
       log_monitoring_stats/3]).
   -export([init_report/0, init_counters/0]).
  
positive.code: %%--------------------------------------------------------------------
  %% @private
  %% @doc
  %% Starts worker node with dedicated supervisor as brother. Both entities
  %% are started under MAIN_WORKER_SUPERVISOR supervision.
  %% @end
  %%--------------------------------------------------------------------
  -spec start_worker(Module :: atom(), Args :: term()) -> ok | {error, term()}.
  start_worker(Module, Args) ->
      try
          {ok, LoadMemorySize} = application:get_env(?CLUSTER_WORKER_APP_NAME, worker_load_memory_size),
          WorkerSupervisorName = ?WORKER_HOST_SUPERVISOR_NAME(Module),
          {ok, _} = supervisor:start_child(
              ?MAIN_WORKER_SUPERVISOR_NAME,
              {Module, {worker_host, start_link, [Module, Args, LoadMemorySize]}, transient, 5000, worker, [worker_host]}
          ),
          {ok, _} = supervisor:start_child(
              ?MAIN_WORKER_SUPERVISOR_NAME,
              {WorkerSupervisorName, {worker_host_sup, start_link, [WorkerSupervisorName, Args]}, transient, infinity, supervisor, [worker_host_sup]}
          ),
          ?info("Worker: ~s started", [Module])
      catch
          _:Error ->
              ?error_stacktrace("Error: ~p during start of worker: ~s", [Error, Module]),
              {error, Error}
      end.
  
  
  %%--------------------------------------------------------------------
  %% @private
  %% @doc
  %% Plans next tasks list checking.
  %% @end
  %%--------------------------------------------------------------------
  
negative.code:     file:write_file(LogFile,
          io_lib:format("~n~s, ~s: " ++ Format, [Date, Time | Args]), [append]),
      ok.
  
  
  %%--------------------------------------------------------------------
  %% @doc
  %% Starts worker node with dedicated supervisor as brother. Both entities
  %% are started under MAIN_WORKER_SUPERVISOR supervision.
  %% @end
  %%--------------------------------------------------------------------
  -spec start_worker(Module :: atom(), Args :: term()) -> ok | {error, term()}.
  start_worker(Module, Args) ->
      try
          {ok, LoadMemorySize} = application:get_env(?CLUSTER_WORKER_APP_NAME, worker_load_memory_size),
          WorkerSupervisorName = ?WORKER_HOST_SUPERVISOR_NAME(Module),
          {ok, _} = supervisor:start_child(
              ?MAIN_WORKER_SUPERVISOR_NAME,
              {WorkerSupervisorName, {worker_host_sup, start_link, [WorkerSupervisorName, Args]}, transient, infinity, supervisor, [worker_host_sup]}
          ),
          {ok, _} = supervisor:start_child(
              ?MAIN_WORKER_SUPERVISOR_NAME,
              {Module, {worker_host, start_link, [Module, Args, LoadMemorySize]}, transient, 5000, worker, [worker_host]}
          ),
          ?info("Worker: ~s started", [Module])
      catch
          _:Error ->
              ?error_stacktrace("Error: ~p during start of worker: ~s", [Error, Module]),
              {error, Error}
      end.
  
  %%%===================================================================
  %%% gen_server callbacks
  