title: Improve service method with elixir Processes and Supervisors
body: <p>I'm building a service that will be making requests to two external APIs. The results are persisted in the local database. </p>
  
  <p>Roughly, the method should work like this:</p>
  
  <pre><code>def make_requests(conn, params) do
    case Service1.request(params) do
      {:ok, response1 } -&gt;
        case Service2.request(params) do
          {:ok, response2 } -&gt; 
            conn 
            |&gt; Repo.insert(response1)
            |&gt; Repo.insert(response2)
            |&gt; render("show.json")
          {:error, message} -&gt; 
            conn |&gt; render("error.json")
        end
      {:error, message } -&gt; 
        conn |&gt; render("error.json")
    end
  end
  </code></pre>
  
  <p>New to elixir, I've been reading about Processes and Supervisors. My question is: Does is make sense to use them here? Could I make the method faster, more performing, or maybe improve fault tolerance by implementing them here?</p>