Hi guys I have a projects that is chat web app
the app need this : PWA SPA , 1-1 chat , multi group chat , Channels , read & typing , video call , voice call , voice chat , image and file preview , edit message , delete message , forward , replay , manage groups and search in chat history , send message to users from admin panel and …
in front end I know can using VUE or react or angular + WebRTC and other needs …
but in the backend I need using this app with my other Laravel project for example I need login user with MySQL database in Laravel projects and user not need to register agian.
I confused !
a year ago I write chat app with node JS and socket io and VUE with MySQL data base for using Laravel projects like users table
but now I need to select best way for new project .
my question is ?
1 : What is best DB for this app ? ( mongo, MySQL, Redis ).
(in any case I should do authentication with my previous MySQL database);
If I using mongo can I have all relations I need for this app ?
If I using Redis for DB ( all chat app needed ) can I have all relations I need for this app ?
If I using MySQL is it ok for big data ?
2:What is best programming language according to Laravel’s previous project ?
1 : Laravel Broadcasting with : Pusher + Laravel-WebSockets in my server + Redis queue + ( Database: Redis ? MySQL? mongo )
2 : Laravel Broadcasting with : Pusher + Laravel-echo-server (NodeJS + socket io ) + Redis queue + ( Database: Redis ? MySQL? mongo ? )
3 : Node Js + Socket io + MySQL
4 : Node Js + Socket io + mongo ( authentication with previous MySQL )
5 : Node Js + Socket io + Redis ( authentication with previous MySQL )
Also, considering the possibility and relationships of the data, consider whether a full implementation is possible with Redis or not ?
What is best way for best performance ?