This is almost a duplicate of an age old question, but preferred to ask as it might help shed light on alternative approaches for the given use case.
I am working on