Planning to implement a scalable real-time collaborative whiteboard but don’t know what architecture to use in order to keep the users persistent without slowing down the application. The application should show bunch of documents on the whiteboard, live cursors and profiles of the users, and current user that edits specific document. What kind of databases should I use to keep the data between the users persistent when working with websockets? Do I have to use queues and what is the best architecture for handling this scenario in a large scale? What should I do in case of failure? Planning to use NestJS and Angular. Continue reading...