Skip to content

Overview

The application utilizes two essential services: one for sending mailers and another for converting HTML to PDF. Service abstraction is crucial as it allows for modularity, scalability, and easier maintenance. By abstracting these services, we can independently manage and update them without affecting the core application, ensuring a more robust and flexible architecture.

Email Service

The Email Service is powered by SendGrid, a cloud-based email delivery service that provides reliable and scalable email solutions. SendGrid offers features such as email templates, analytics, and high deliverability rates, making it an ideal choice for handling application-generated emails. In our application, a school account is configured with the necessary credentials and template IDs to send mailers triggered by various events, such as an Individualized Education Program (IEP) sent for approval or a case study sent for review. This ensures that important notifications are delivered promptly and efficiently.

Pdf Service

The Pdf Service is designed to convert HTML content into PDF format. This is particularly useful for the frontend, which often needs to download various types of content as PDFs. To achieve this, a separate PDF service is created and deployed as an AWS Lambda function with API Gateway. This serverless approach offers several benefits, including automatic scaling, reduced operational overhead, and cost efficiency, as you only pay for the compute time you consume.

The Pdf Service resides in a separate repository and is deployed as part of a serverless architecture using the Serverless JavaScript SDK. This setup allows for easy deployment and management of the service. The source code for the Pdf Service can be shared upon request, providing transparency and the ability to customize the service as needed.