Avallain’s customers typically offer platform solutions with targeted content for courses in a particular subject area and age group. The content is distributed worldwide.
Throughout the year the Unity platform sends out communications to its users, which include educators, learners and administrators. At key points during the year email volumes are particularly high, such as when a new cohort of users are created at the beginning of the school year. It is vital that AWS SES is available during this time.
AWS have put quotas on the AWS SES that the solution needs to adhere to including bounce rates, complaints, and email volumes. More information can be found here.
The main goals for the solution included to:
• Ensure AWS SES availability
• Monitor the AWS SES and create alerts
• Create reports of the failed emails to inform the customer’s next steps
• Automate the process where possible
• Assure data protection
• Be cost effective
CirrusHQ worked with the Avallain to agree the scope, requirements, and boundaries of the architecture.
There are three parts to the solution:
• The gathering of the SES data
• The reporting on the data collected
• Status check
The SES Notifier architecture above shows how the data is collected and stored. The education platform (an instance of Unity) sends out emails via SES to the customers. Where responses occur they are sent securely to SNS which triggers a Lambda function. The function inspects the header information, transforms it into fields, and adds to a new row in DynamoDB.
The SES reporter architecture above shows how a CloudWatch event triggers Lambda to run the reports. The Lambda function interrogates the tables in DynamoDB (the same table as used in the SES Notifier part of the solution) and generates a standard report (accompanied by a raw data extract held in csv) for Avallain.
The SES status check architecture above shows how a CloudWatch event triggers a Lambda function to check the health of the SES associated with an Education Platform per region, per account. When certain criteria are met, the function will send the results to an SNS topic. This could trigger an Opsgenie alert for CirrusHQ to respond to.
In addition, it can be noted that:
• each Lambda function that creates any exceptions will create a log which is stored in CloudWatch Logs for immediate review by CirrusHQ.
• all parts of the solution have been architected securely.
CirrusHQ worked closely with Avallain, to design, build, deliver, and maintain the required infrastructure for Avallain’s solutions. The following are some of the key responsibilities of the team:
• Cloud system architecture and design
• Development of Lambda functions
• Deploying and configuring AWS infrastructure
• Cost and performance optimisation
• Monitoring and alerts
• Extracting data from SES responses into DynamoDB in a repeatable architecture so that it can be used for each deployment of Avallain’s education platform.
• Creating standard reports to inform both Avallain and their customers