Declarative per-function RPC wrapper via the defrpc macro.
Node config is loaded at call time (via execute_dynamic/4),
so topology changes in runtime.exs take effect without recompiling.
Config example
config :my_app, :remote_defrpc,
nodes: [:"remote@127.0.0.1"],
select_mode: :round_robin,
sticky_node: trueModule setup
defmodule MyApi do
use EasyRpc.DefRpc,
otp_app: :my_app,
config_name: :remote_defrpc,
module: RemoteNode.Interface,
timeout: 1_000,
retry: 0
defrpc :get_data
defrpc :put_data, args: 1
defrpc :clear, args: 2, as: :clear_data, private: true
defrpc :put_data, args: [:name], new_name: :put_with_retry, retry: 3, timeout: 1_000
endOptions for defrpc
:args- Arity as integer,[], or list of arg-name atoms (default:0):as/:new_name- Override the generated function name:private- Generate asdefp(default:false):retry- Override global retry count:timeout- Override global timeout:error_handling- Override global error-handling flag