Hi QC team and community,

I've been trying to get into quantconnect for a while. But I feel like I'm missing some fundamental understanding of the architecture and the scope between live and backtesting executions.

I am struggling to find answers to the following;

  1. In the config.json file, what does 'live-mode' do? Is that just for evaluating 'isLive' in an algorithm?
  2. In the config.json file, What does 'send-via-api' do?
  3. I've tried so many things to get 'live' desktop to work. I've copied the 'live-paper' environment, added the desktop-exe and desktop-port config options to have the interface load and replaced "data-queue-handler": "QuantConnect.Lean.Engine.DataFeeds.Queues.LiveDataQueue", with ""data-queue-handler": "QuantConnect.Lean.Engine.DataFeeds.Queues.FakeDataQueue". When I run this, it starts showing queued ticks in the log output, but it doesn't show any charting or trades.
  4. What is the difference between SubscriptionDataSource (for example: LiveFeaturesAlgorithm) and a data-queue-handler? Or how they relate? Is SubscriptionDataSource required for Live?

I have implemented an external datafeed which pulls a 'snapshot' of a watchlist. It's not 'tick' data, but it's polled every 10 seconds and I can retrieve volume, bid, lastprice, open, close etc. and exposes a json/rest API. I would like to consume it within QuantConnect/LEAN. So I think I need to implement a LiveDataFeed data-queue-handler. Is that right? Ultimately I would like to implement an IBrokerage, but for this first stage I would like to have this data available to run with my algorithms. I'm mostly stuck because I can't even get the test FakeDataQueue to work. 

Thank you.