Have you checked our new Admin GraphQL API? It enables bulk setting of inventory levels: see here
You also have the option to register as a FulfillmentService: see here
Shopify will make a request for the inventory level of an individual SKU when the item is set up initially or is changed in the Shop's Admin. A request for all inventory data will happen once every hour to keep our system up to date with the remote fulfillment service. Using the fulfillment service API, you can bulk update inventory. More information here.
I have solved this for 5000 products, 50,000 products and 200,000 products in stores.
So far, the best approach has been to download the Shopify inventory using Bulk Downloads. You get JSON, which you can turn into a nice data structure. I typically use the SKU from that.
Now you have new inventory from the external provider. You typically download a CSV or something. I then rip through that creating a match of a SKU and new quantity in a large data structure. So for every SKU in Shopify, we get a new inventory value.
You can do one API call with GQL to update 100 SKUs. So that makes it really fast to do updates. The only catch at this time, is that is done per location. So if you have more than one location, you'll be wanting to rinse repeat recycle that algorithm for each location.