RADAR-base / RADAR-Appserver

General purpose application server for the radar platform currently with capability to schedule push notifications
10 stars 1 forks source link

[FEAT] Improve capacity and performance of the appserver #451

Open yatharthranjan opened 5 months ago

yatharthranjan commented 5 months ago

Is your feature request related to a problem? Please describe. Currently, we have a single appserver for all the deployments used by the production aRMT app and these seem to be growing rapidly. Soon we will run out of capacity to support additional projects due to limitations in scaling the appserver and single db architecture.

Describe the solution you'd like We can have multiple instances of the appsever+postgres. We will have a gateway like service in front of these appserver instances which will dynamically chose from among the available appserver instances based on hash of the r-base base_url of the client request, or the app can include it in the request itself.

Describe alternatives you've considered Alternative would be to consider partitioning and horizontal scaling the postgres and adding indexes for most used properties in the database. This would improve performance of the postgresDB and we can add more replicas of the appserver. Another alternative is to revisit the support of multiple firebase projects in the app (not sure if feasible now or not).

Priority 2

Difficulty 5

Additional context Add any other context or screenshots about the feature request here.