Retrospective on Developing Gift-Sending at Kurly
Key point
Kurly successfully launched a gift-sending service built on a new order server while maintaining compatibility with its legacy monolithic system.
Details
Kurly's order service development team improved its legacy monolithic structure and developed a new order server to officially launch a gift-sending service. The existing monolithic architecture based on the GoX-mall solution (PHP) carried the risk of being a single point of failure (SPOF), so compatibility with existing processes was the key challenge when introducing the new service.
Architecture and Data Synchronization Strategy
The new order server was designed based on a microservices architecture (MSA), and a dual writing approach was applied to maintain compatibility with existing processes such as work tools, logistics, and reward points. Record information from the new DB is synchronized to the existing DB, and mechanisms were put in place to restore data consistency in the event of a failure, ensuring system stability.
Development and Deployment Process
With a team of 8 people, the development team carried out new service development and maintenance of existing services in parallel. Despite the tight schedule, deployment began in late August, and the service officially launched on September 2. During a month-long QA period, about 1,000+ issues were found and all resolved, and the service has been operating stably without incident since launch.
Future Plans and Implications
Kurly is accelerating its shift toward independent, domain-based microservices to overcome the limitations of its legacy system. This project served as an opportunity to accumulate domain knowledge in its own logistics operating environment, and the company continues to hire experts in legacy system improvement and commerce logistics domains.
This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.
Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.