Zrychlili jsme načítání cestovního webu o 50 %
- 90 % zvýšení stability webu
- 5 s → 1 s odezva vyhledávání

Představení
Airstop.cz je český online prodejce zájezdů. Nabízí zájezdy od desítek dodavatelů a jeho web musí v reálném čase hledat napříč jejich systémy — u každého dotazu obchází cizí API, skládá výsledky a hlídá dostupnost termínů.
Přepsali jsme mu backend, sjednotili technologie a přesunuli provoz do AWS.
- 10 dodavatelských systémů
- 4 technologie vedle sebe

1.
Potřeba
Airstop stál na architektuře, která vznikala po vrstvách. PHP, C#, MySQL a MongoDB vedle sebe, každá část psaná jinak a jiným jazykem.
Systém fungoval, ale každá změna v něm stála víc času než ta předchozí.
A vyhledávání se protahovalo
Klient nechtěl záplatovat. Chtěl systém, který unese složitou doménovou logiku, zvládne různorodá API a nebude brzdou pro produktový vývoj.
2.
Výzva
Složitost, která nebyla vidět na začátku.
Doménová složitost se ukazovala postupně. Na začátku nebylo vidět, kolik pravidel se za prodejem zájezdů skrývá — dostupnost, termíny, ceny od různých dodavatelů, každý s vlastní logikou a vlastním API. Projekt jsme proto vedli agilně a průběžně ladili očekávání na obou stranách.
Druhá výzva byla v tom, na čem systém stojí: deset cizích systémů, které nemáme pod kontrolou. Když některý z nich vypadne nebo zpomalí, nesmí to shodit celý web.
A do třetice — u části dodavatelských API se platí za dotaz. Optimalizace tedy nebyla jen o rychlosti, ale i o penězích za každé zbytečné volání.
3.
Řešení
Jeden jazyk místo čtyř technologií.
Sjednotili jsme celý stack do JavaScriptu s TypeScriptem. Backend jsme přepsali od základu, frontend refaktorovali. Zásadní výhodou je sdílení logiky napříč systémem — stejná pravidla platí na obou stranách, takže se nemohou rozejít, a údržba je jednodušší.
Systém jsme přesunuli do AWS s vysokou dostupností a nasazováním bez výpadku. Integrace s deseti dodavatelskými systémy jsme postavili tak, aby byla komunikace auditovatelná a logovaná, a aby počet volání zůstal na nezbytném minimu. Modulární architektura s fallback mechanismy drží web funkční i tehdy, když má některá třetí strana problém.
Výsledky
Jak web vypadá
Chcete podobné řešení?

Prohlédněte si naši další práci
Máte vizi? Pojďme ji proměnit v úspěšný digitální produkt


