opsmill / infrahub

Infrahub - A new approach to Infrastructure Management
https://opsmill.com/
GNU Affero General Public License v3.0
208 stars 17 forks source link

feature: Faster API response time #1799

Open bilalabbad opened 10 months ago

bilalabbad commented 10 months ago

Component

API Server / GraphQL

Describe the Feature Request

Improve global API response time. Ideally:

https://www.nngroup.com/articles/response-times-3-important-limits/= The basic advice regarding response times has been about the same for thirty years [Miller 1968; Card et al. 1991]:

  • 0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.
  • 1.0 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data.
  • 10 seconds is about the limit for keeping the user's attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect.

Describe the Use Case

Currently API time can be very long and are very inconsistent. It can take up to 10s in local, and 26s response time on CI, causing:

Here some 30s recording on different page.

  1. Initial page load: /api/config 17.3s /graphl/main getBranches not finish

https://github.com/opsmill/infrahub/assets/15261980/cf5769a9-006d-4751-aeb7-213486b98af9

  1. Branch create: /api/config 811ms /api/schema 10.9s /graphl/main BranchCreate not finish

https://github.com/opsmill/infrahub/assets/15261980/3bd78166-489d-47b0-865c-9f7a5b67d87b

Additional Information

No response

fatih-acar commented 6 months ago

We have made great improvements on the API response times in the last months. Flaky E2E tests have been resolved.

There's still one or two API endpoints that are slow when scaling (diff endpoint for example).