Skip to main content

Overview

Flow diagram

Infrastructure Diagram

Boxes explained

There are a few grey boxes in the diagram. Such a box is a context-boundary where everything inside is related. The boxes are labled in the top left corner.

  • Boxes labled AWS describes services running inside an account at Amazon Web Services. These incur a monthly bill based on usage.
  • Boxes labled Any Provider are generic components that could be sourced from any cloud provider or even self-hosted. In the context of MailFlow Relay this includes mailservers that can recieve emails for the left side and mailservers that can send with SMTP on the right side. Costs depend on choice of provider.
  • The box labled Mail Manager references the internals of MailFlow Relay. In this box the icons are technically misused to not refer to an AWS service but to describe a specific part of the data processing pipeline. Their meaning can be referenced with the icon table but should match the AWS service in spirit at least.

Icons explained

The icpns in this diagram are from the AWS architecture icons. Inside of the Boxes marked "AWS" they are used correctly, outside of that they were picked by what the service represents and matches the given component for visual continuity.

IconExplanation
AWS SES IconAmazon Simple Email Service is the translation gateway from the world of email into the world of API calls and webservers. In this infrastructure it can be used as Email ingress and/or as egress provider. More on how SES fits into the stack can be found here.
AWS SNS IconAmazon Simple Notification Service is the glue that allows SES to talk to our server. It translates from what SES can speak to what Mail Manager can work with. More on this service in context of this infrastructure can be found here.
AWS S3 IconAmazon Simple Storage Service is a low cost storage oprion for raw data. SES pushes the raw IMAP data into S3 because it would be too big for an SNS notification. The ingress webhook downloads the raw IMAP-message data from the bucket. More on S3 for MailFlow Relay can be found here.
AWS Lambda IconThis icon is used for all passive compute elements that do not have a timer or listener but are invoked by others. before them and deffer to components after them.
AWS EC2 IconThese components are active stateful nodes that manage open connections, run timers or other stateful operations.
AWS Config Icon, recolored blueApp state like email alias target lists or metadata like priorities and other configuration. This element is global meaning all instances mean the same datastore but it is duplicated to remove clutter from crossing connections. for more detail see list configuration.
AWS generic Database IconThe email send queue has the currently actuve and recently completed email send operations with all metadata required to synthesise the outbound payload. Attachments are stored externally by ID because large binary blobs in the DB are bad form.
AWS Filesystem IconAttachment files are stored on disk as with a unique hash-based ID. The email send queue references these attachments and the scheduler loads them on demand to add to outbound mail. Attachments are deleted after a while when all dependencies have resolved.