Whats the best websocket solution without too much overhead?
I'm fairly new to real-time databases with WebSockets so I'm facing probably the most important question when it comes to starting, which database and approach within the backend are the fastest and most reliable to set up and scale.
I'm having a Django backend with MongoDB (Djongo) and React in my frontend. Hosted on a google cloud linux VM. I'm currently comparing Websocket solutions for creating Components like text-editors that can be used collaboratively like google docs for example. To keep everything tidy I would have loved to go with an approach within Django but it seems so much overhead to work with Websockets in Django compared to other solutions.
What I've gathered so far by trying all of these.
Django:
Has a lot over overhead as you need, Channels, Redis and therefore all the setup for it to use real-time WebSocket communication.
Channels itself seemed kind of ok to set up but with an addition of Redis, the ASGI configs, and then making sure it works with my Mongo DB backend seems very complex to me in comparison to other systems with a lot of potential problems in the way.
I coded everything and got most of it working and started facing problems when starting with authentication, and the use of Redis in between everything.
Node.js:
Node.js seems unbelievably easy to set up with sockets.io and Mongoose. I'm not running a Node.js server on my VM simply due to my experience with Node.js and because I try to stay in my Django Python backend as much as possible. But Node.js seems so much easier to set up and handle that I think of switching for the real-time aspect of it.
Firebase:
Firebase has everything already set up for you so this seems as easy as Node.js. Why am I not saying as easier as Node.js because setting up the schema is a little bit more complex than Mongo DB and in my case handling the auth over Django and making sure Firebase can auth with my Django backend is something I haven't figured out yet without having the user to sign in two times.
I feel stuck here with my information. What is your experienced option on WebSockets or real-time databases in general? What would be the best solution to this problem?