Size: M - [Feature] Cells 1.0 impact for email ingestion
Email routing will be another interesting feature. I imagine the routing itself may sit at the cluster level, whereas the actual logic would be at the cell level to actually perform the work (e.g. reply to a comment) See: - https://gitlab.com/gitlab-org/gitlab/-/issues/435028+ - https://gitlab.com/gitlab-org/gitlab/-/issues/434970+ From https://gitlab.com/gitlab-com/gl-infra/production-engineering/-/issues/25087+: See https://gitlab.com/groups/gitlab-org/-/epics/13213+ ## Overview GitLab offers [incoming email](https://docs.gitlab.com/ee/administration/incoming_email.html) where users can create issues, patches, and service desk by having a unique email address per project, for example, `incoming+SOME_ID-issue@incoming.gitlab.com`, then emails are processed by `mail_room` so that it creates issues, and other features (this is my understanding, please correct it if it's wrong). With [Cells](https://docs.gitlab.com/ee/architecture/blueprints/cells/) we plan to have multiple isolated GitLab instances. This means that we are going to multiple multiple `mail_room` queued processing the same email, and the project might not even exist in that cell. ![image](/uploads/b6c9758798e7a5dc8c1618e928c6b73d/image.png) [source](https://excalidraw.com/#json=Z-DMjGD1iOiwvbRo5gLJ-,gxlTnilRvTunIAifgu7jHw) ### Possible Problems 1. Having multiple `mail_room` processes might read an email and doesn't process it. - This might not be a problem because each `handler` seems to [validate](https://gitlab.com/gitlab-org/gitlab/-/blob/a82ebd4628b3c4f29f52c3d9d4d72004acd1fd48/lib/gitlab/email/handler/create_note_handler.rb#L23-35) if the project exists. 1. Having a single incoming inbox for all cells will reduce reliability. ### Possible Options 1. A mailbox per Cell - We need to keep in mind in the future we want to have the ability to move the organization from 1 cell to another, this means that the email address will end up changing every time we move the organization which is a breaking change to our users. 1. Single mailbox, multiple `mail_room` only processes emails for the projects they have access to.
epic