Programiści NFQ podjęli wyzwanie zbudowania platformy handlowej, która z powodzeniem obsłużyłaby rosnącą ilość danych (na początku czerwca 2019 r. było 1 mln produktów, a w 2021 r. już około 20 mln), i to w ciągu 6 miesięcy. Tak właśnie narodziła się platforma Smarketer.
Smarketer.Shopping to znana niemiecka porównywarka cen. Nasz zespół, programując w języku Kotlin na silniku wyszukiwania ElasticSearch, zbudował na AWS dostosowaną do szybkiego wzrostu platformę handlową, na której użytkownicy końcowi mogą szybko i skutecznie wyszukiwać pożądane produkty oraz porównywać ich ceny u różnych dostawców.
I to się sprawdziło. Liczba unikatowych użytkowników systemu rośnie średnio o 66% co 6 miesięcy, i będzie to trwać nadal pomimo pogorszenia sytuacji rynkowej w związku z epidemią COVID-19 w latach 2020–2021.
„W trakcie opracowywania Smarketera zwracano szczególną uwagę na stabilność i skalowalność. W niedalekiej przyszłości planujemy zwiększyć potencjał monetyzacji platformy oraz umożliwić radykalne zwiększanie liczby produktów. Docelowo chcemy osiągnąć poziom 100 milionów produktów” – mówi Vainius Venclovas, kierownik zespołu w NFQ.
Podczas opracowywania platformy Smarketer.Shopping zmierzyliśmy się z ważnym problemem. Duże rozmiary plików ze zdjęciami produktów w wysokiej rozdzielczości spowalniały szybkość ładowania tej platformy internetowej. Ponieważ planowana liczba produktów była ogromna, przetwarzanie obrazów musiało być prowadzone w sposób ostrożny. Aby umożliwić codzienne importowanie milionów zdjęć produktów, inżynierowie firmy NFQ skorzystali z usług Amazon Web Services.
Mówiąc dokładniej: podczas importowania obrazów produktów ich rozmiar jest zmniejszany w czasie rzeczywistym za pomocą usługi obliczeniowej AWS Lambda. Po przetworzeniu obrazy są przechowywane w magazynie danych AWS S3.
A to tylko jeden mały proces w dobrze zaprojektowanym ekosystemie. By wymienić tylko kilka innych:
„Podczas pracy nad projektem największym wyzwaniem było dla mnie uświadomienie sobie, jak skomplikowane mechanizmy mogą kryć się za tym, co z zewnątrz może wyglądać na coś bardzo prostego. A także przemyślenie wszystkich szczegółów i sytuacji, które mogą wystąpić” — mówi Paul-Willem Thum, Senior Team Lead w firmie Smarketer.