I'm currently using angular on the frontend for a dashboard that displays the progress of queue workers. On the backend, I use 50 AWS EC2 instances that each have around 6 workers and those are managed by supervisord. Those workers take the next job available in an Aurora Mysql Serverless DB. Those workers write in the DB a lot and also read a lot from it and what I've noticed is that the read operations are slown down in the frontend. For example when executing an axios get request to get the job progress, it sometimes takes 50 secs to receive the information and all subsequent ajax calls are delayed.
I tried to scale the DB to a better instance but I have a feeling this is not the right approach because there is still a lot of lag. I think this is probably because mysql is not the right tool for the job and redis would be better suited? One solution that I also thought about would be to have a read replica so that the frontend dashboard reads from it and receives the information in milliseconds. The downfall with this approach is that I'm using an api on the backend so I would have to replicate the api on another instance and there would be two similars api, including one that is read only.
What do you guys think would be the best approach?