there is no absolute need to use spacy. There are pipelines that work without Spacy - I recommend the documentation here. However, Spacy comes with some cool advantages that might be of interest for you.
I am currently experimenting a lot with different Spacy features and can confirm, that the last recent version of Spacy (2.2.2) does not break any function inside rasa.
In terms of tensorflow I am not quite sure. The Rasa team recently updated Rasa to the support of tensorflow 1.15. I’d recommend either to simply try it or to wait until the update comes with TF 2.0 since Google changed a lot here.