Hi, I am experimenting with Sentry stack and I am in process of developing a design which can achieve high throughout (ideally 1k rps during spikes). I am fairly new to developing applications at scale and I am skeptical about my approach. So far I plan to use ECS on AWS with Elasticache (for Redis), RDS and a load balanced fleet of EC2 instances on top of which the sentry server and the worker processes would reside on. My question are:
- What should be ratio of the webservers to the worker processes if I am planning to handle that throughput?
- How many connections do I need to be able to establish with my datastore and database for allowing that level of concurrency? How do I detect if they are the bottleneck?
- Is RDS/Elasticache worth using over managing them my self, with performance being the only concern?
- How big a fleet would I be needing? Is scaling vertically more beneficial over scaling horizontally?
- Should I opt for a caching mechanism like Cyclops over achieving 1k rps just by infrastructure?
- Would Kubernetes provide any performance incentive over ECS?
The only endpoint I am going to be using on scale is POST @ /api//store
Sorry if these questions are too broad/simple, I have done a lot of research but I am not able to find answers on my own and it would be great if someone who had create such a system can speak from their experience. Any insights would be very appreciated. Thanks!
Edit: Changed 5k Rps to 1k Rps