Keywords
Cloud, AWS, Serverless, Event driven, automation
Technologies
React, Python, AWS Lambda, React flow, Amazon SNS
This project is a serverless scheduler that is hosted on AWS created to aid in the scheduling and execution of tasks. The frontend uses React and offers two different modes for creating and scheduling tasks. The first mode is a straightforward approach to allow users to create tasks. The second uses a workflow approach where users can arrange nodes and connect their edges to create a workflow.
The backend is a FastAPI service, and Primary data is stored in a PostgreSQL database this data includes titles, scheduling, status and notification emails. The detailed task execution data is stored seperately in a MongoDB as append-only event logs which are keyed using their job ID.
On AWS the API is accessed through an application load balancer that runs on Amazon ECS. The background worker was created using an AWS Lambda function that uses a recurring Eventbridge schedule that periodically selects the due rows in the PostgreSQL database and then selects them to be executed. The notifications uses Amazon SNS for topic notifications and Amazon SES system to send emails about the task execution to the email address that the user provides.