When we started in 2017 we used an Azure ServiceBus and it’s endpoint. The TTN integration ‘HTTP integration’ and just forward it to the ServiceBus.
On the other end of the ServiceBus an Azure Function waits and handles the data and stores it into a SQL DB. In 2017 the IoTHub was way more expensive than a ServiceBus. I don’t know the cost now but it still works flawlessly.
https://docs.kolibricloud.ch/overview/architecture/