PhoenixMicro.Supervisor (PhoenixMicro v1.0.0)

Copy Markdown View Source

Root supervisor for the phoenix_micro OTP application.

Supervision tree

PhoenixMicro.Supervisor (one_for_one)
 Registry
 CircuitBreaker.Store
 Schema.Registry
 Phoenix.MetricsStore
 Transport.Memory (always  no connection supervisor needed)
 ConnectionSupervisor(:rabbitmq | :kafka | :nats | :redis_streams)
      Transport.* (connection GenServer)
      WorkerPool (bounded task pool for message processing)
 Producer
 RPC
 ConsumerManager (DynamicSupervisor)
      Pipeline (Broadway) per consumer
 Saga.Supervisor (DynamicSupervisor)

Each real transport gets its own ConnectionSupervisor using a :rest_for_one strategy: if the connection dies, its worker pool restarts too (workers hold channel references).

Summary

Functions

Returns a specification to start this module under a supervisor.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(opts \\ [])

@spec start_link(keyword()) :: Supervisor.on_start()