Our current system for managing facilities and security has two parts:
- Web application: This is built using Django stores data in a PostgreSQL database. It also uses GraphQL for APIs.
- Mobile app: This is a Flutter app for mobile users. It communicates with the server and has its own local database using SQLite.
Major Features:
- Tracking users every 30s while performing route patrolling and site visits.
- Data synchronization between server and mobile when performing onboarding from mobile end.
The problem:
- We did’nt use yet any message queues in our system. This means if the server gets overloaded with requests, it can become busy and time out for other users trying to access it.
In other words, the system runs smoothly when there’s low traffic. But during peak times, the server struggles to handle all the requests at once, causing delays and errors for other users.
The solution i think:
A message queue acts as a buffer, holding requests until the server is available to process them.
If above is the doable solution, Rabbit Mq at server side and mqtt at client side is feasible approach?
or there is no need of mqtt at client side.
why i am referring to mqtt at mobile end:
- Enhanced offline capabilities
- Bi directional communication
- Real-time updates
Am i adding too much complexity or is there any effiecient approach?