Top-level supervisor for Lotus.
Configuration paths
Lotus can be started in two ways, and each resolves configuration differently:
As an OTP application (via
Lotus.Application) — the supervisor is started with no opts, somiddlewareandcacheare read from the application environment (Lotus.Config.middleware/0andLotus.Config.cache_config/0). This is the default when:lotusis started automatically as a dependency via its OTP application callback.Embedded in a host supervision tree (via
child_spec/1) — opts passed tochild_spec/1(e.g.middleware:,cache:,name:) are forwarded tostart_link/1and override the application environment values for that instance. This is the path to use when running multiple Lotus instances or when you want per-instance configuration without touching the application environment.
In both cases, opts passed directly to start_link/1 take precedence over
application environment config; the Application.start/2 path simply does
not pass any opts through.
Children
In start order: Lotus.Notifier, the task supervisor, the cache adapter's
children (Lotus.Cache.ETS when no adapter is configured),
Lotus.Cache.Relay, and Lotus.Source.Supervisor. The notifier
starts first because the relay and the source reconciler listen on it.
Summary
Functions
Returns the task supervisor name for the given Lotus instance name.
Functions
@spec start_link(keyword()) :: Supervisor.on_start()
Returns the task supervisor name for the given Lotus instance name.