Sorry for the vague title, but not sure how to sum up what I'm trying to ask. I've been using Neo4j for about a month or so and I'm definitely sure that this is the right way to go. I just hit a point where I messed up my graph and I'm going to have to rebuild it...so I wanted to ask a few questions to make sure I didn't make any rookie mistakes...
My project is a specialized dating/community app. Think FB mixed with OKCupid. The frontend is a React application. I installed Neo4j on a VM with a .Net Core 2.2 Web API and Nginx front end. On the Web API, I'm using the CypherClient (Readify) dll to handle the communication from the controllers to the neo4j interface. I'm also using Google's Firebase for Authentication (front end gets token from firebase and uses it to authenticate to the web api). Currently, I'm still in development, so the neo4j server and web api are on the same VM. For production I plan to put them on separate machines with a load balancer in front of the web api image and (depending on load) setting up a cluster for the neo4j.
I've been doing a LOT of reading about the different configurations that are possible, and it's a lot to process.
Here are my questions....(well...the ones that I know to ask right now anyway :) )
- Is the WebAPI actually necessary? If I'm understanding it correctly, there's a driver for JavaScript that can connect directly to the bolt interface.
- I seem to have hit a limitation with the CypherClient in that I can't seem to use the distance function within a Where clause. Is that possible with the JavaScript driver?
- I was reading a little bit about the Authentication framework within Neo4j server. Am I understanding it correctly that the server can handle creating accounts as well as use 3rd party authentication (like google, FB, etc)?
- Do you have the capability to look into the future and let me know what I don't know right now so that I can avoid the mistakes I'm sure I'm making?????
Thanks in advance in helping!