MeliGraph.Ingestion.Writer (MeliGraph v0.3.0)

Copy Markdown View Source

Single-writer GenServer para ingestão de arestas.

Padrão GraphJet: um único processo de escrita evita race conditions no gerenciamento de segmentos. Leituras são feitas diretamente nas tabelas ETS (multi-reader).

Padrão Oban: trap_exit + drain da mailbox no shutdown para não perder arestas durante graceful shutdown.

No modo :sync, usa call em vez de cast para garantir que a inserção completou antes de retornar (essencial para testes).

Summary

Functions

Returns a specification to start this module under a supervisor.

Insere uma aresta no grafo, com peso opcional (default 1.0).

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

insert_edge(conf, source, target, edge_type, weight \\ 1.0)

@spec insert_edge(MeliGraph.Config.t(), term(), term(), atom(), float()) :: :ok

Insere uma aresta no grafo, com peso opcional (default 1.0).

No modo :sync, a chamada é síncrona (call). No modo :disabled, a chamada é assíncrona (cast).

start_link(opts)