411 Local Search Corp.

January 7, 2020 mikehajj

Founded in 2006, 411 Local Search Corp operates in the realm of commercial business, marketing, opinion, and economic research.

By early 2017, the company faced performance challenges that rendered it incapable of effectively serving the extensive Canadian market, where nearly all Canadians, averaging over 30 million users, relied on 411.

The decline in performance, particularly during peak hours, impacted the entire business, particularly its primary feature, “The Search,” which experienced responsiveness issues.

Project Task/Challenge

Upon diagnosis, we identified factors contributing to the performance decline:

  1. The 411 search engine took at least 2 seconds to process queries, with response times rising to 10 seconds during stress, especially at peak hours.
  2. Results contained duplicates and irrelevant data.
  3. About one-third of the data needed treatment and cleaning.
  4. High infrastructure costs required optimization.
  5. The lack of automated pipelines slowed down delivery and increased human error.
  6. The application operated on a monolithic architecture, hindering proper scaling.

Solution

After evaluating the original application’s design, technologies, and resources, the proposed solution addressed performance issues by reducing API response time from 2 seconds to 0.18 seconds and eliminating downtime during peak hours. Additionally, the new infrastructure’s cost was significantly optimized.

The proposed solution included:

  1. Architectural upgrade from monolithic to SOA and microservices.
  2. Introduction of 9 new Microservices with custom APIs using SOAJS.
  3. Implementation of a Custom Gateway for traffic handling, distribution, authentication, and cloud awareness.
  4. Database migration from MySQL to ElasticSearch.
  5. Implementation of advanced ElasticSearch features, including phonetic and fuzzy support and stemming between French and English languages.
  6. Introduction of a new Admin dashboard for full control over API management, configuration, and deployment.
  7. Implementation of a new Search Rules Engine with full configuration support and recalibration.
  8. Switch from Apache to Nginx for faster delivery of static content.
  9. Replacement of image supply from BLOB datatype in MySQL with the adoption of a CDN.
  10. Complete detachment of frontend channel interfaces from the backend layer.
  11. Recreation of the Frontend web interface using Angular.
  12. Infrastructure uplift and deployment on Containerized Infrastructure (Kubernetes).