ASM.Extensions.Routing (ASM v0.9.2)

Copy Markdown View Source

Public routing extension API.

This domain provides deterministic provider selection with health-aware failover, fully owned by extension processes.

Summary

Functions

health_snapshot(router)

@spec health_snapshot(pid()) ::
  {:ok,
   %{
     required(ASM.Extensions.Routing.Router.provider_id()) =>
       ASM.Extensions.Routing.Router.health_status()
   }}

provider_health(router, provider_id)

report_failure(router, provider_ref, reason)

report_result(router, provider_ref, result)

report_success(router, provider_ref)

select_provider(router, opts \\ [])

@spec select_provider(
  pid(),
  keyword()
) :: {:ok, ASM.Extensions.Routing.Router.selection()} | {:error, ASM.Error.t()}

start_router(opts)

@spec start_router(keyword()) :: GenServer.on_start()