Shopify обновил графический движок GraphQL Cardinal, что позволило увеличить скорость выполнения запросов в 15 раз. Это решение может существенно улучшить работу с большими объемами данных в e-commerce, надежно снижая задержки и увеличивая производительность.
Контекст и предыстория
На текущий момент многие системы, использующие GraphQL, сталкиваются с проблемами производительности из-за традиционной реализации, которая идет по глубинному (depth-first) принципу. Компания Shopify, учитывая потребности своих клиентов и внутренние вызовы, приняла решение пересмотреть архитектуру выполнения запросов в своем движке.
Новая схема реализации Build First (широкая первая) модели позволяет обрабатывать запросы по уровням, а не по узлам. Это критически важно для больших систем, где вложенные структуры данных погружают движок в проблему с производительностью.
Ключевые улучшения и их значение
По данным Shopify, переход на новую архитектуру позволил достичь 15-кратного увеличения скорости выполнения запросов на уровне полей. Также зарегистрировано снижение нагрузки на сборку мусора (GC) на 6 раз и сокращение времени ответа более чем на 4 секунды для 50% запросов.
Согласно Farhan Thawar, главе инженерного отдела Shopify, «GraphQL Cardinal — наш ответ на проблему, которая была незамеченной в графическом экосистеме. Текущая реализация GraphQL дорого обходится при больших объемах данных, и мы решили активно улучшить ситуацию». Эта архитектура делает пакетную обработку запросов стандартной практикой, что оптимизирует CPU и уменьшает использование памяти.
Практические выводы для разработчиков
Теперь разработчики могут рассчитывать на значительно меньшие задержки в e-commerce приложениях, что, в свою очередь, может повлиять на пользовательский опыт. Для компаний, работающих с большим количеством данных, важно учитывать, что интеграция нового GraphQL Cardinal потребует адаптации существующих схем и разрешений к запросам. Это означает, что API не придется переписывать с нуля, что экономит время и ресурсы.
В ближайшее время Shopify намерен продолжать разработку и внедрение этой архитектуры в свои решения. Компания рассчитывает на возможность более продвинутого анализа данных и обработки запросов, что позволит перейти на следующий уровень в сфере e-commerce.