Download the case study
Newton: A new-age email client application that works seamlessly across a wide range of platforms
Category: Communication
Services: Managed Engineering Teams, Cloud Architecture Design, and Review
Category: Communication
Services: Managed Engineering Teams, Cloud Architecture Design, and Review
Newton is a new-age email client application that works seamlessly across a wide range of platforms like macOS, Android, iOS, and Windows. In addition, the tool offers users many useful features like read receipts, sharing emails with a link, and snooze, to name a few.
These features hit the right chord with the customers and helped Newton quickly become its users’ email app of choice.
We resolved the complicated infrastructure by enabling the transformation of the client’s infrastructure into Kubernetes from physical servers. We used the Amazon Elastic Kubernetes Service(EKS) for this purpose. In addition, we built a single codebase for the application to ensure that there are no maintenance issues in the code in the future.
To reduce the infrastructure, we first estimated the monthly workload. The Simform engineering team then decided to add dynamic load balancing with auto-scaling groups into the architecture. This made the system highly scalable as it could now scale up or down based on the workload that it was facing. We then used managed database services and designed certain logic to be run serverless. Our team utilized the reserved instances facility and the savings plan facility provided by AWS to reduce the costs of the infrastructure.
The public and internal load balancers are used to ensure the correct load distribution between the EC2 instances. The requests first come to the public load balancers, then the medusa public servers handle these requests and route them to the internal load balancers. The internal load balancers then distribute the load to the ec2 instances based on availability.
Job distribution: SQS/ Gearman
Amazon SQS and Gearman are the services responsible for queuing and job distribution. Whenever a service request comes, it first goes to a que. Then the job pushers push these jobs into SQS and Gearman while the job workers start working on the job.
The dynamo DB stores the metadata regarding emails and templates. Our engineering team thought about this feature as we came across a user need to share templates of emails with other users through various apps like Asana, Slack, and Skype. DynamoDB also plays a role in enabling the link tracking and read receipts feature in Newton.
The Amazon S3 is another database solution used in the Newton app. The S3 stores email templates and attachments. The S3 enables the application to have faster access to the data stored in S3. The user experience gets improved as the users can download the attachments faster. The public email sharing with a link feature is also enabled using the S3 and RDS databases. The data regarding the public email sharing feature is stored in S3 and RDS and is fetched through the front web servers and displayed to the user. The users can enable a feature that allows this public link to remain active for 30 days, after which it automatically expires.
SQLite storage with thrift interface
The SQLite storage with thrift interface is used to store the email’s metadata for 60 days. We do this to serve these emails quickly to the users as and when required. During the trial period, the emails are stored for 15 days.
Worker nodes are EC2 instances that perform various functions like