
Modulárny monolit vs mikroslužby. Ako si vybrať architektúru
Mikroslužby kupujú nezávislosť zmien za reálnu prevádzkovú cenu. Porovnajte hranice, vlastníctvo, dáta, nasadzovanie a signály na oddelenie služby.
Shopify prepísal Shop app z React Native do Swiftu a Kotlinu za dvanásť týždňov. Rozhodla cena kódu, nie výkon. A to je otázka aj pre menšie firmy.
Shopify po piatich rokoch na React Native vracia mobilné aplikácie do Swiftu a Kotlinu. Oznámil to 10. septembra 2026.
Dôvod, ktorý Mustafa Ali uviedol, stojí za prečítanie dvakrát. Agenti podľa neho dnes zvládnu dosť z implementácie, prekladu medzi platformami, testovania a review na to, aby zdieľaný kód prestal byť tým rozhodujúcim faktorom, akým bol v roku 2020.
O výkone v tom oznámení nie je ani slovo. Načasovanie pritom nebolo náhodné. Tím aj tak stál pred migráciou na novú architektúru React Native a namiesto nej nechal agentov pracovať priamo v SwiftUI a Jetpack Compose. Shopify si v roku 2020 kúpil zdieľaný kód preto, aby neplatil dvakrát za tú istú obrazovku. Teraz mu vyšlo, že tá druhá platba zlacnela natoľko, že sa za ňu už neoplatí držať vrstvu navyše, ktorá si svoju réžiu pýta každý jeden deň.
Jeden inžinier strávil týždeň tým, že púšťal kódovacích agentov na React Native kód. Nechal ich vyrobiť iOS verziu. To stačilo na rozhodnutie. Potom šesť ľudí postavilo základy a hlavné používateľské cesty, produktové tímy sa pridali v polovici, a Shopify mal natívnu Shop app v oboch obchodoch dvanásť týždňov po tom prototype.
Čísla pred prepisom a po ňom vyzerajú takto.
Na menšej obrazovke posuňte tabuľku vodorovne.
| Metrika | React Native | Natívne |
|---|---|---|
| Studený štart na iOS | 3200 ms | 2466 ms |
| Studený štart na Androide | 4433 ms | 2233 ms |
| Veľkosť appky na iOS | 67 MB | 68 MB |
| Veľkosť appky na Androide | 293 MB | 184 MB |
Release build na Androide sa skrátil zhruba o 75 %, na iOS zostal rovnaký a stabilita relácií stúpla z 99,5 % na 99,95 %, čo je desaťkrát menej relácií končiacich pádom. Feed na Androide beží podľa Shopify na Pixeli pri 120 snímkach za sekundu.
Ťažšia je tá druhá aplikácia, obchodnícka. Vyše 300 obrazoviek, widgety na plochu aj na zamknutú obrazovku, appka pre Apple Watch s komplikáciami, k tomu Siri Shortcuts, a všetko to musí prežiť prepis bez toho, aby si to obchodník všimol. Prepisuje sa práve teraz a má prísť neskôr tento rok.
Každá abstrakčná vrstva je obchod. Platíte za ňu réžiou a závislosťou na cudzom roadmape. K tomu vrstvou navyše medzi Vaším tímom a platformou. Dostávate za to ušetrenú prácu. Keď cena tej práce klesne, hodnota vrstvy klesne s ňou, ale réžia zostane presne tam, kde bola, a platí sa každý mesiac presne tak ako predtým.
React Native sa nezhoršil. Zlacnela druhá strana tej istej rovnice. Rovnaká úvaha stojí za každou voľbou, kde sa rozhodujete, koľko z výsledku chcete vlastniť a koľko odovzdáte frameworku, ktorý o Vašom konkrétnom produkte nevie vôbec nič. Písali sme o nej pri Next.js a htmx, a tam vyšla inak.
Toto väčšina zhrnutí preskočila. A je to užitočnejšie než samotné rozhodnutie.
Agenti mali predlohu. Shopify to píše otvorene, darilo sa im tam, kde vedeli čítať existujúcu implementáciu. Prenos obrazovky z React Native do SwiftUI je porovnávacia úloha, kde existuje správna odpoveď a dá sa k nej dôjsť, kým zelená lúka bez predlohy je iná robota s inou úspešnosťou.
Zvyšok je tooling. A ten je tu vlastne tým hlavným produktom. Migračný workflow beží ako rozšírenie kódovacieho agenta Pi, kde špecializovaní subagenti čítajú React Native zdroj, zapíšu jeho správanie, pripravia plán pre konkrétnu platformu, implementujú ho a nakoniec kontrolujú, či sa výsledok správa rovnako. Plán schvaľuje človek a to schválenie je naviazané na hash jeho obsahu, takže akákoľvek zmena plánu ruší predchádzajúci súhlas. Systém Helix potom drží tempo po malých krokoch, vývojár ho nasmeruje na jednu obrazovku a spätná väzba z každého review sa pamätá, takže čím ďalej migrácia postúpi, tým menej dozoru potrebuje. Na ladenie si postavili Tardis, ktorý dá agentovi štruktúrovaný prístup k udalostiam a logom bežiacej aplikácie, k jej stavu aj možnosť posielať jej príkazy.
A potom je tu vec, ktorá sa dá prevziať aj bez ich rozpočtu. Biznis logiku oddelili od UI tak, aby bežala headless na desktope, a sprístupnili ju agentom cez CLI, takže agent si ju vie spustiť bez toho, aby čakal na simulátor. Iterácia klesla z minút na milisekundy. Architektonicky je to stará známa vec. Presne tá vlastnosť, ktorá robí kód testovateľným, len jej pribudol druhý odberateľ.
Vygenerovaný kód u nich splnil zadanie. Popri tom priniesol duplicitu, architektonický posun a miesta, kde výkon spadol. Natívna expertíza preto zostala nevyhnutná a review, linting, statická analýza aj výkonnostné kontroly zostali na ľuďoch, ktorí tú platformu poznajú lepšie než ktorýkoľvek agent, ktorého na ňu pustíte. Píše to Shopify, nie ja.
Parita sa presunula. Dve kódové bázy znamenajú, že iOS a Android musia byť funkčne zhodné stále, a drží ich tam proces vývoja a releasu, nie kompilátor, ktorý to predtým vyriešil sám. Tá práca sa nestratila. Platíte ju teraz v koordinácii.
A meradlo nie je naše. Shop app je päťročný produkt vo firme, ktorá má mobilnú platformovú skupinu aj tím na vlastný agentový tooling. Kto to oznámenie číta ako povolenie prepísať svoju appku, číta ho zle, lebo tých dvanásť týždňov stojí na nástrojoch, ktoré si Shopify najprv musel sám postaviť. Kedy sa mobilná appka vôbec oplatí, sme rozoberali v samostatnom článku.
Pri každej vrstve, ktorú v systéme máte preto, aby ste nemuseli písať kód, sa spýtajte, koľko by dnes stálo napísať to bez nej, a porovnajte to s tým, čo za ňu platíte. Nie či je tá vrstva dobrá. Koľko stojí alternatíva. To číslo sa za posledný rok pohlo a väčšina firiem ho naposledy rátala v čase, keď platili iné ceny. Rovnakú otázku sme rozpísali aj pre low-code a krabicové systémy.
Druhá otázka je tvrdšia. Ak sa v odpovedi spoliehate na agenta, máte z čoho vychádzať a viete v sekundách overiť, že výstup sedí, alebo to overenie znamená, že si to niekto musí prečítať? Bez toho ste späť na ľudskej rýchlosti, len s väčším objemom kódu na review.
U klienta by som preto nikdy nezačínal mobilnou aplikáciou. Začal by som tam, kde sa obe tie podmienky splnia samy, teda tam, kde už existuje predloha, ktorú agent prečíta, a overenie netrvá dlhšie než pár sekúnd. Integrácia proti zdokumentovanému API. Generátor výkazov, ktorého výstup viete riadok po riadku porovnať so starým. Odchod z frameworku, ktorý už nikto neudržiava, kde staré správanie je zadanie. Tieto tri veci tvoria väčšinu toho, čo robíme pri vývoji softvéru na mieru.
Titulok o súboji frameworkov je z celého oznámenia to najmenej zaujímavé. Shopify povedal niečo prízemnejšie a užitočnejšie. Jedna položka v ich rozpočte zlacnela natoľko, že sa oplatí prerátať zvyšok, a ten prepočet je lacnejší než ktorákoľvek migrácia, ktorá by z neho nakoniec vyšla. Väčšina vrstiev, ktoré Váš tím dnes používa, ten prepočet prežije. Jedna alebo dve neprežijú a práve tie stoja najviac.

Mikroslužby kupujú nezávislosť zmien za reálnu prevádzkovú cenu. Porovnajte hranice, vlastníctvo, dáta, nasadzovanie a signály na oddelenie služby.

Porovnajte Next.js s Axum, Askama a htmx podľa stavu v prehliadači, kontraktov, cache, nasadenia, bezpečnosti, mobilných klientov a odovzdania.
Tri odseky vyrobili 55 000 riadkov kódu hry a skóre 5,05 z 10. Metóda za tým funguje aj na firemných výstupoch a najužitočnejšie sú práve tie úprimné čísla.