title: Should I instantiate an object every request or once upon app launch?
body: <p>In my Rack app, I need to use an <a href="https://stackoverflow.com/a/26808756/242933">AWS Cognito Client</a> for signup &amp; login requests.</p>
  
  <p>Should I initialize:</p>
  
  <ol>
  <li>a separate client (assigned to a local variable inside the <code>call</code> method) for each request?</li>
  <li>one client (assigned to a global variable outside the <code>call</code> method) for all requests?</li>
  </ol>
  
  <p>Concerns:</p>
  
  <ol>
  <li>Speed &amp; cleanup: Is initialization time fast? Is the client automatically destroyed at the end of each request? I studied the source code but didn't grasp the metaprogramming.</li>
  <li>Thread safety: Is this option thread safe? I have Puma configured to use multiple threads.</li>
  </ol>