Mudah.my: From monolithic to microservice
In brief
- Mudah.my is a Malaysian 12-years-old online marketplace. A product derives from a partnership between Telenor ASA of Norway and 701Search Singapore.
- Currently holds 19.8% Internet share, Mudah meets the increase of customers demand, which led to an overload in the current system.
- We partnered to help migrating the monolithic architecture into microservices - Unlocking a scalable and feature-extendable platform.
- We spent a month working on-site at Malaysia to directly participate in the work and speed up productivity.
Technical Highlight
- Massive migration from monolithic to microservice architecture.
- Combining Golang and Gin framework to fasten web performance.
- Next.JS for search-engine index, SEO-friendly and reusable components.
- Unit test that ensures at least 80% test coverage before deploying to production.
- Mobile app with MVC architecture for fast debugging and development speed.
The Context
Mudah.my’s site features various ads categories for different purchase demands. The data from customer and third-parties is massively huge to process.
With 12 years in the market, their system starts to slow down. It affects the data process, and drags down user experience.
The world develops, Mudah must targets a younger customer segment. The website interface and stagnant system are holding their goal back.
They decided to go for a massive refactoring in: Infrastructure, Codebase and Application UI.
“Refactoring a whole system requires a high effort. There’s no place for hiring plans and teammate training. I was in need of a workforces that gets the hang of the job.” Prateek - Mudah’s Product Manager
Engagement Model
We took care of migrating the legacy PHP system to microservices in Go. It optimizes page load and tackle scaling problem. We decoupled the services one by one, starting with the Auth module (user’s authentication flow).
The server-side rendering concept with HTML data parsing makes the site indexable by search engine, optimizes SEO and boosts up user experience.
We worked on shipping new features, refactoring the code and deep link manager in mobile app. MVC architecture ensures an upgrade in development pace, enable us to update and debug easier.
Tech stacks
- Backend: Golang & Gin framework
- Frontend: Next.js
- Server-side rendering
- Database: PostgreSQL & RESTful API
- GRPC protocol
- Mobile: Swift 4 and MVC
Collaboration
The Dwarves spent a month in Malaysia to directly work with Mudah team. It was a great working process and exciting experience.
Delivery tooling
Slack chat, Jira card & Gitlab Merge Request for technical discussion.
Outcome
Mudah remains one of our longest, tried-and-true collaborations. We have continuously worked with Mudah on various scopes of work and committed different engagement models. The system was flawlessly migrated, enabled Mudah to access their potential market for both desktop and mobile users.
It was amazing to facilitate their growth and contribute our best practices. The progress still evolves and we’re so excited to see what’s coming next.
“Completing the tech platform changing and stretching the revenue are two main goals that Mudah.my intends to follow. To maintain two biggest challenges at once is quite difficult. We got positive responses from the team, the skillset and the member were in high quality. That helped increase our confidence in the Dwarves and we’re very interested in working with them.” Prateek Roy, Mudah.my’s Product Manager