Elixir in Action Application structure is wrong

Edited the original post for the sake of clarity and to not shame you with my horrible work :stuck_out_tongue:

Wouldn’t something like this be more resilient then?

@impl Application
@spec start(any, any) :: {:ok, pid} | {:error, :ignore | any}
def start(_type, _args) do
  case System.start_link() do
    {:ok, pid}  ->  {:ok, pid}
    :ignore     -> {:error, :ignore}
    error       -> error
  end
end

Or doesn’t it make sense at all?