[go: up one dir, main page]

Skip to content

Proposal: Performance as a Feature in SCM

We currently treat performance as either typemaintenance or typebug, but should we be treating it as a Feature?

Performance has a huge impact on usability, and while we have made great progress in performance, we can make many more improvements. frontend is doing some great work on this, for example on the Blame page. !110208 (comment 1260739919)

There is a lot of work we can do on the backend in endpoint tuning and within Ruby code (eg: Banzai). In the past we have waited until an endpoint exceeds tolerences, and then patched that endpoint. For some endpoints it may take a major rewrite to improve performance, and we would benefit from a multi-milestone, collaborative UX / frontend / backend effort on this.

We might also have some benefits from Ruby 3.2, backend threading, increased use of streaming and other newer features. We would be able to make other UX improvements at the same time, if we are touching pages anyway.

We have squeezed of performance out, and while there might be some more squeezing possible, we might need to look at serious rewrites in some areas, none of which will be easy:

  • Banzai
  • /internal/allowed
  • Rebuilding a frontend component to use endpoints progressively.
  • Consider moving some code to Workhorse (or a new Golang component), which would imply database access from Golang and all the complexities that entails

See also this document

Follow-up to this thread

Edited by Sean Carroll