Goal: have a personal blog, and try out another point in the 'modular app design with elixir' space. Designing OTP systems with elixir had some interesting ideas.
35 lines
1.0 KiB
Elixir
35 lines
1.0 KiB
Elixir
defmodule Firehose.Application do
|
|
# See https://hexdocs.pm/elixir/Application.html
|
|
# for more information on OTP Applications
|
|
@moduledoc false
|
|
|
|
use Application
|
|
|
|
@impl true
|
|
def start(_type, _args) do
|
|
children = [
|
|
FirehoseWeb.Telemetry,
|
|
Firehose.Repo,
|
|
{DNSCluster, query: Application.get_env(:firehose, :dns_cluster_query) || :ignore},
|
|
{Phoenix.PubSub, name: Firehose.PubSub},
|
|
# Start a worker by calling: Firehose.Worker.start_link(arg)
|
|
# {Firehose.Worker, arg},
|
|
# Start to serve requests, typically the last entry
|
|
FirehoseWeb.Endpoint
|
|
]
|
|
|
|
# See https://hexdocs.pm/elixir/Supervisor.html
|
|
# for other strategies and supported options
|
|
opts = [strategy: :one_for_one, name: Firehose.Supervisor]
|
|
Supervisor.start_link(children, opts)
|
|
end
|
|
|
|
# Tell Phoenix to update the endpoint configuration
|
|
# whenever the application is updated.
|
|
@impl true
|
|
def config_change(changed, _new, removed) do
|
|
FirehoseWeb.Endpoint.config_change(changed, removed)
|
|
:ok
|
|
end
|
|
end
|