Edredo is a social platform that links 90,000+ students and young professionals with industry specialists for career growth and skill-building. With a focus on collaborative learning and teaching, Edredo offers a unique and engaging Ed-tech experience through its innovative approach to experiential learning, gamification, and ease of use.
OpenSense Labs assisted Edredo in migrating to a Drupal 9 decoupled application through a progressive approach, ensuring a seamless transition with no disruption to the end user experience.
Describe the project (goals, requirements and outcome):
Edredo partnered with OpenSense Labs for the development and migration to Drupal 9. The objective was to enhance features and functionality while also updating to the latest version to avoid a last-minute rush.
Edredo, being a highly demanding product, was in the midst of feature development on Drupal 7. Upgrading from Drupal 7 to 9 is not a simple update, but rather a complete rebuild. To tackle this, Edredo management faced two options: halt all Drupal 7 development and wait for the migration to Drupal 9, or support both Drupal 7 and 9 development in the hope that the Drupal 8 rebuild would eventually catch up with the current feature set. Both options were time-consuming and inefficient, leading OpenSense Labs to implement a progressive migration approach that super optimized the process and reduced costs.
Process and solution
The earlier version of Edredo in Drupal 7 had a progressively decoupled architecture, with about 60% of its components separated into React blocks that utilized Drupal Services' session-based REST API. To fully embrace decoupled architecture, the team decided to switch to NextJS as the front-end framework. This choice was driven by NextJS's server-side rendering capabilities and improved SEO potential.
The decision to move Edredo to a microservice architecture was made to enhance its overall functionality and performance. The microservices, including Feed stream App, Emailer, Quiz app, Media and Interactive video app, were chosen to cater to specific needs and functions of the platform. This approach allowed for a more flexible and scalable solution, as each microservice could be developed and maintained independently, without affecting the performance of other parts of the system.
Moreover, the microservice architecture enabled Edredo to better handle the increasing demand for a personalized and interactive learning experience. The Quiz app and Interactive video app were designed to provide a more engaging and interactive learning experience, while the Feed stream app, Emailer and Media were meant to enhance the communication and collaboration between instructors and students.
Overall, the move to a microservice architecture helped Edredo achieve its goal of delivering state-of-the-art virtual classrooms and breaking down the silos of monotonous online courses. By offering easy access to the best of interactive technology, the platform empowered instructors and institutions to curate a unique digital learning ecosystem, thereby facilitating a personalized and communal learning experience.
The ongoing development of Edredo is focusing to move some of these services to serverless architecture with AWS Lambda.
Following is the very high level architecture diagram to show how the communication flows between different application components. After the authentication with firebase
We took the following approach for it:
- With the help of decoupled drupal, they started upgrading some parts of the website to Drupal 9, while some parts were still having the application of Drupal 7.
- For authentication we chose a third party tool, firebase.
- Once a feature is completely ready on Drupal 9, the APIs are updated at API routing layer and a small targeted data migration is done.
- Entire update is completely abstracted from the end user.
In order to ensure seamless development and upgrade, Edredo adopted a hybrid approach by utilizing both Drupal 7 and Drupal 9. This approach allowed for the site to remain functional while the upgrade was being carried out.
At OpenSense Labs, we went beyond the client's expectations by delivering not only the required services but also providing additional benefits. Our goal was to deliver a high-quality user experience.
Within a span of 64 working days, we were able to successfully complete the first production release, which not only served three times more users than the previous infrastructure but also performed optimally.
OpenSense Labs extensively used JIRA and Slack for ticketing and other communication.
Results
- A comprehensive learning management system was built on Drupal 9 with a Drupal at backend and NextJS and Flutter (for mobile) at frontend.
- Improved reliability due to microservice architecture
- Infinite scaling on serverless architecture
- Better UX with ANT Design.
- Unmatched SEO compatibility due to server side rendering of nextJS.
- Migration from monolithic to microservices increased website scalability, optimized resources, enhanced collaboration.
- Flutter enabled cross platform app development that can run on both android and IOS devices. Flutter development allowed to curb project cost and help deliver a scalable and pixel perfect platform.