GraphQL.cz/Fórum/Kdy se vyplatí použít GraphQL subscription místo REST pollingu?

Kdy se vyplatí použít GraphQL subscription místo REST pollingu?

Zajímalo by mě, jaké jsou hlavní rozdíly mezi používáním GraphQL subscription a REST pollingu. Mám nějaké projekty, kde potřebuju, aby se moje aplikace aktualizovala v reálném čase, ale nejsem si jistý, jestli bych měl jít cestou subscription nebo zůstat u pollingu. Slyšel jsem, že REST polling může být jednoduchý na implementaci, ale může také zatěžovat server a není tak efektivní. Na druhou stranu, GraphQL subscription vypadá jako moderní řešení, které by mohlo všechno zjednodušit a zrychlit. Jaké jsou výhody a nevýhody každého přístupu? A kdy je nejlepší volba přejít na subscription? Představte si situaci, kdy máte chatovací aplikaci nebo něco podobného, co potřebuje neustále dostávat nové zprávy. Je to v takovém případě jasná volba pro GraphQL? Jak vlastně funguje ta komunikace na pozadí a co to obnáší pro architekturu celé aplikace? Rád bych slyšel názory těch, kteří s oběma přístupy už pracovali a mohou porovnat jejich zkušenosti. Děkuju!

148 slov
1.5 minut čtení
3. 8. 2022
David Karásek

Když mluvíme o reálném čase, tak GraphQL subscription je jasná volba pro aplikace jako chat nebo notifikace, kde chceš mít aktuální data hned. REST polling může být jednodušší na začátku, ale jakmile začneš víc zatěžovat server, tak to může být problém. Každou chvíli posílat dotazy a čekat na odpovědi znamená spoustu zbytečné zátěže a latence, obzvlášť pokud se nic nemění.

Na druhou stranu, subscriptions ti umožní dostávat data jen tehdy, když dojde k nějaké změně. Takže server neřeší zbytečné dotazy a ty máš vždy aktuální informace. Co se týče architektury, musíš mít websockety nastavené a to může být trochu víc práce než s REST, ale stojí to za to.

Pokud máš chat, co potřebuje neustále nové zprávy, tak subscription je fakt lepší cesta. Méně zatížení serveru a rychlejší reakce pro uživatele. Takže pokud víš, že tvá aplikace bude vyžadovat časté aktualizace dat, jdi do toho s GraphQL.

147 slov
1.5 minut čtení
19. 6. 2024
Viktor Hora

Pokud jde o GraphQL subscription vs REST polling, tak je to o tom, co potřebuješ. Polling je dost jednoduchý – prostě pravidelně děláš requesty na server, ale jak říkáš, může to zatěžovat server a když to děláš moc často, tak i klienta. Třeba u chatovací aplikace, kde se chceš dozvědět o nových zprávách v reálném čase, bys musel nastavit docela krátké intervaly pro polling a to může být problém.

Na druhou stranu, GraphQL subscription ti umožňuje dostávat aktualizace, jakmile nastanou. Takže když někdo pošle zprávu, server ti to hned pošle místo toho, abys čekal na další request. To šetří zdroje a zlepšuje uživatelský zážitek.

Co se týče architektury, potřebuješ mít na serveru WebSocket podporu pro subscriptions. Není to nijak extrémně složité, ale je třeba na to myslet od začátku. Takže pokud máš projekt, kde budou časté aktualizace jako v chatu nebo třeba live sportovní výsledky, tak rozhodně jdi do subscriptions. Ale pokud jde o něco, co se mění jen občasně, může být polling stále dostatečný.

164 slov
1.6 minut čtení
21. 9. 2024
David Valenta

Pokud jde o výběr mezi GraphQL subscriptions a REST pollingem, záleží to na konkrétním use case. REST polling je jako když hladovíš a pořád se vracíš do ledničky, abys zjistil, jestli už je něco k jídlu. Můžeš dostávat spoustu zbytečných odpovědí, i když se nic nezměnilo, což zatěžuje server a tvoji aplikaci. To se hodí spíš pro případy, kde real-time aktualizace nejsou tak kritické.

Na druhou stranu, GraphQL subscriptions jsou jako mít osobního číšníka, který ti přináší jídlo přesně když máš hlad. Tvoje aplikace dostává okamžité notifikace o změnách, což je super pro chatovací aplikace, kde chceš vidět nové zprávy v reálném čase. Je to efektivní a šetří to šířku pásma.

Co se týče architektury, budeš potřebovat WebSocket nebo něco podobného pro ty subscriptions. Vytvoří to další vrstvu složitosti, ale ta výhoda real-time komunikace za to stojí. Pokud tedy plánuješ něco jako chat nebo notifikace, jdi do toho s subscriptions, ale pokud ti jde spíš o občasné aktualizace bez nutnosti hned reagovat, polling může být dostačující.

164 slov
1.6 minut čtení
13. 7. 2024
Helena Matějková
GraphQL.cz/Články/GraphQL vs. REST
GraphQL Subscription vs. REST Polling: Jak zvolit správnou strategii?Zkoumání rozdílů mezi GraphQL Subscription a tradičním pollingem v REST API s praktickými příklady a tipy pro výběr vhodné metody.
1000 slov
10 minut čtení
11. 6. 2020
Lucie Kovářová
Přečíst článek
Podobné otázky