Optimize computation and loading of Work Item Participants
Summary
Loading of participants has been slow in Issuables when there are lots of discussion comments since our approach to computing the list is via parsing comment blobs, gathering all the mentions, checking permissions, and serving the list. Additionally, this list is not cached. We continued this approach for Work Items too due to complexities around backfilling the data but this is not sustainable as the product grows. We're significantly running into availability issues where queries like epicParticipants
often take longer than expected, causing our error budgets to exceed.
Currently, this is only impacting Epics because only Epics support cross-group hierarchies, but with Work Items also reusing same approach, and Issues migrating to Work Items in the near term, this is going to impact much more broadly across the product.
Proposal
We need to come up with a better alternative that is not only fast to compute but is also leveraging caching. This issue is opening up a technical discussion on possible approaches we can take, once we have a consensus, be sure to update issue description to reflect it and use it is as SSoT.