mule/runtime/nursery
The queue-tree root — a port of Oban.Nursery:
nursery (RestForOne, tolerance 5/30)
├── foreman: factory of queue supervisors (tolerance 20/60)
└── midwife: starts configured queues, handles start/stop signals
RestForOne mirrors nursery.ex’s rest_for_one: a foreman crash restarts the midwife too, whose initialiser re-starts the configured queues into the fresh foreman.
gleam_otp constraint: factory.restart_strategy is ignored for supervisor
children, so queue supervisors are Transient (restarted on crash, removed
by terminate_child) where Elixir’s DynamicSupervisor children are
permanent — indistinguishable in practice, since supervisors never exit
normal (parity §9).
Values
pub fn child(
config config: config.Config,
foreman_name foreman_name: process.Name(
factory_supervisor.Message(queue_supervisor.QueueOptions, Nil),
),
) -> supervision.ChildSpecification(static_supervisor.Supervisor)