The College Affordability Model system started as an idea exploration system, and gradually evolved into a useful tool for legislators and policymakers over the past four years. It presents the users with how much the students and their families can make the utmost of the common sources of funds, as well as the potential debt, to pay for college. After years of development and refinement, the system has improved in modularization and encapsulation. The current website has a separate frontend system providing a user interface (UI) and backend system serving application programming interface (API). However, due to the sequential computation pattern, the system had a linearly increasing latency as the computation complexity grows. Additionally, the existing backend lacked the flexibility to compute different combinations of the models and thus the run time did not scale dynamically according to the required workload. These limitations had become problematic for developers to extend the data models and to sustain efficient user interactions.
This current project addressed these issues with a microservices-based backend system. The scope of the project was to design and implement the new architecture and migrate the existing backend system. By following the Domain-Driven Design (DDD), services such as computing unit, request dispatcher, API proxy, data source were abstracted, and implemented. To ensure runtime reliability, the framework was redesigned with a monitoring system. The system implementation is based on multiple services from AWS including CloudFront, API Gateway, S3, Lambda, and CloudWatch.
The project progress followed the agile model in managing the development lifecycle and went through several iterations. The backend framework is now delivered as a Django REST application with elaborate unit tests and documentationand is PEP8 compliant. The framework is deployed, and functionality verified as the new backend of the College Affordability Model website. The programmability and extendibility of the framework are demonstrated via recently developed new features to the website.