macula_mesh (faber_neuroevolution v1.2.4)

View Source

Macula mesh integration facade.

Provides a unified API for interacting with the Macula mesh platform. Handles: - Service advertisement (register as evaluator) - RPC requests (distributed evaluation) - Pub/Sub (signal broadcasting) - DHT operations (service discovery)

When macula is not available (no MACULA_MESH_ENABLED define), operations gracefully degrade to local-only mode.

Summary

Functions

discover_evaluators(Realm)

-spec discover_evaluators(Realm :: binary()) -> {ok, [map()]} | {error, term()}.

get_state()

-spec get_state() -> map().

handle_call(Request, From, State)

handle_cast(Msg, State)

handle_info(Info, State)

init(Config)

is_mesh_available()

-spec is_mesh_available() -> boolean().

publish_signal(Topic, Signal, Options)

-spec publish_signal(Topic :: binary(), Signal :: term(), Options :: map()) -> ok | {error, term()}.

request_evaluation(NodeId, Individual, EvaluatorModule, Options)

-spec request_evaluation(NodeId :: binary(),
                         Individual :: term(),
                         EvaluatorModule :: module(),
                         Options :: map()) ->
                            {ok, RequestId :: binary()} | {error, term()}.

start_link(Config)

-spec start_link(Config :: map()) -> {ok, pid()} | {error, term()}.

subscribe_signals(Topic, Callback)

-spec subscribe_signals(Topic :: binary(), Callback :: fun()) -> ok | {error, term()}.

terminate(Reason, State)