I’ve looked into this with the team and it seems that something similar to this approach is likely to be the best solution at the moment. You can read a great overview and see a worked example in the article linked below.
I hope this is helpful. Please let me know if you have any questions.