Uploaded image for project: 'Minimal Marketable Features'
  1. Minimal Marketable Features
  2. MMF-1454

Replace Notifications algorithm with new, performant version

    Details

      Description

      Why

      The performance of our current notifications algorithm is broken, and can't be fixed without breaking backward compatibility of the related public API. Additionally the current implementation includes a huge user-side headache: when analysis or bulk issue update changes hundreds of issues, hundreds of individual emails are sent out, even when they're all to the same recipient. This hundreds-of-emails problem can cause additional performance problems just in the sending of so many emails, and potentially with the SMTP server that receives and has to process those emails. Further, notifications are generated regardless of whether or not an SMTP server is configured or working properly and accepting new messages.

      What

      We'll deprecate the current API and discontinue internal use. It will remain available for now for plugins. We'll create a new algorithm with private visibility and re-implement most of the existing notifications. We've identified three relevant roles:

      • R1: developer
      • R2: project administrator
      • R3: team lead (tech lead / mgr)

      Global:

      • Failed background tasks on projects where I have admin (R2)
      • Changes in issues assigned to me (R1)
      • New QG status (subsequently dropped as part of MMF-1620) (R3)
      • My new issues (R1)

      Project:

      • Failed background tasks (R3)
      • Changes in issues assigned to me (R1)
      • New QG status (R1, R2, R3)
      • Issues resolved as FP/WF (R3)
      • New issues (R3)
      • My new issues (R1)

      While project-level notifications on issue changes and new issues will be re-implemented, one subset of existing notifications we will not re-implement is issues notifications on PRs and SLBs. Our experience with them is that the vast majority of notifications are not for my PRs, and are thus spam. We will revisit a smart implementation of notifications on "My PRs and SLBs" in a later initiative.

      When a single event such as analysis or bulk issue change affects multiple issues, only a single notification will be sent to each recipient. Some emails will use paginated issue Id lists. Others will be linked to Project Issues or My Issues, filtered by date, as appropriate. Email content (and/or subject) will include project name and branch when the notification is generated by analysis.

      Note that the scope of this MMF does not include updating issue search, so in order to ensure accurate issue links, we will use comma-delimited lists of issue id's. This will necessitate pagination, as reflected above in the email template. No other set of issue filters was deemed to be accurate - and remain - accurate.

      The new algorithm will be smart enough not to run if no SMTP server is configured, and to queue messages if the configured server is not responding.

      How

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ann.campbell.2 Ann Campbell
                Reporter:
                sebastien.lesaint Sebastien Lesaint
              • Votes:
                1 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: