Skip to content

Latest commit

 

History

History
13 lines (7 loc) · 1.29 KB

DEPLOYMENT.md

File metadata and controls

13 lines (7 loc) · 1.29 KB

Considerations for Deployment

Deploying to a single server for staging or personal use (e.g., backups) should be simple.

However, deploying an instance that needs to handle thousands of simultaneous connections with a large database and low latency for aggregation requests is more complex. There are many ways to achieve this.

Ruby, Rails, concurrency, and relational databases are sometimes seen as slow and not scalable. While this is not generally true, it means that deployment and operations should be handled carefully. This setup may require more cost per connection compared to a specialized implementation using a custom database and C-based websocket server.

On the other hand, PostgreSQL and Redis are widely used and have excellent support and reliability. They can scale vertically or horizontally for a long time, unless there are cost constraints.

The easiest solutions to manage would be to use managed databases like RDS and MemoryDB on AWS. Combined with load balancers and horizontally scaled application servers, this setup should be able to handle a large number of users.

However, managed environments will be more expensive and still require attention, so this option should be carefully considered. If deploying for high workloads, it is advisable to consult with experienced developers.