The following table provides guidance on the number of concurrent requests each REST end-point can handle as well as the expected response time under that load. This is rough guidance and not exact data; it is based upon experimentation and will be updated from time to time.
End-point | Concurrent Users | Response time | |
---|---|---|---|
GET | /services | < 130 | < 500ms |
GET | /forms | < 150 | < 500ms |
GET | /institutions | = 1 | < 1200ms |
GET | /surveys | < 20 | < 500ms |
GET | /reports | < 115 | < 500ms |
GET | /report/:reportID | < 140 | < 500ms |
GET | /survey/:surveyID | < 130 | < 500ms |
GET | /report/:reportID/model | < 10 | < 500ms |
GET | /report/:reportID/model/:questionID | < 150 | < 500ms |
GET | /forms/:formID/questions | < 140 | < 500ms |
POST | /services/survey | = 1 (up to 135) | < 1500ms (10s at 135) |
When a survey is submitted (POST /services/survey), a report calculation and generation process is started. The amount of time this takes is variable (based upon server load). Expect this to take about 10-30 seconds before report data is available. Therefore, we suggest waiting 30 seconds after the POST /services/survey before attempting to get the report data (GET /reports, GET /report/:reportID, GET /report/:reportID/model).