Configuração centralizada, validada uma vez no start_link.
Passada para todos os processos da supervision tree via conf:.
Inspirado no padrão do Oban: um struct imutável que carrega todas
as configurações necessárias, eliminando Application.get_env espalhado
e permitindo múltiplas instâncias com configurações diferentes.
Summary
Types
@type t() :: %MeliGraph.Config{ algorithms: [atom()], graph_type: :directed | :bipartite, name: atom(), plugins: [{module(), keyword()}], registry: atom(), result_ttl: pos_integer(), segment_max_edges: pos_integer(), segment_ttl: pos_integer(), testing: :disabled | :sync }
Functions
Cria e valida uma nova configuração a partir das opções fornecidas.
Opções obrigatórias
:name- nome da instância (atom):graph_type-:directedou:bipartite
Opções opcionais
:segment_max_edges- máximo de arestas por segmento (padrão: 1_000_000):segment_ttl- TTL dos segmentos em ms (padrão: 24h):result_ttl- TTL dos resultados em cache em ms (padrão: 30min):algorithms- lista de algoritmos habilitados (padrão: [:pagerank, :salsa]):testing- modo de testing::disabledou:sync(padrão: :disabled):plugins- lista de {módulo, opts} dos plugins (padrão: Pruner + CacheCleaner)