https://github.com/elixir-lang/gen_stage
Gen Stage is a library for "exchanging events between producers and consumers." It allows us to concurrently do things with rate limiting and back pressure.
Refactor the Session module to use a GenStage for HTTPoison requests with rate limiting (look at this example). The rate limiting should be based on a constant in the config file.