Krajem Novembra održala se WATFOI koferencija na Zlatiboru. Naš kolega Luka Radujević je održao sjajno predavanje na temu Unraveling the Magic of gRPC. Studenti su imali priliku da čuju zanimljive stvari iz ove tehnologije.
gRPC je savremeni protokol za efikasnu komunikaciju između klijenta i servera u distribuiranim sistemima, koristeći HTTP/2 i Protobuf. Poznat po bidirekcionalnoj podršci i generisanju koda za različite jezike, gRPC se često koristi u mikroservisnim arhitekturama.
Na Lukinom predavanju, pričalo se o upotrebi gRPC protokola u kontekstu komunikacije između mikroservisa. Studentima su na početku predstavljeni načini kako servisi mogu da komuniciraju međusobno. Pomenute su arhitekture kao što su REST, GraphQL i RPC kao najpoznatije arhitekture današnjice.
Prikazane su prednosti i mane svake arhitekture i objašnjeno je kako su istorijski ove arhitekture pojavljivale. Nakon detaljne diskusije na temu RPC arhitekture i njenih najznačajnijih komponenti, usledio je deo koji se odnosno na rRPC protokol. Studentima su predstavljene glavne komponente ovog protola, sa fokusom na Protobuffer i njegove mogućnosti za generisanje programskog koda u velikom broju jezika na osnovu .proto specifikacije.
Studentima je predstavljena sintaksa i tipovi podataka koje mogu da koriste u .proto fajlovima. Na kraju teorijskog dela, govorio je o mogućnosti stream-ovanja i full-duplex komunikacije koja može da se ostvari pomoću gPRC protokola.
Nakon završenog teorijskog dela, usledio je najzanimljiviji deo predavanja – live demo u kom je prikazana komunikacija između dva servisa pomoću gRPC protokola. Primer je rađen korišćenjem .NET tehnologije. Ovaj primer je imao za cilj da pokaže kako se u realnim projektima uspostavlja komunikacija između mikroservisa korišćenjem ovog modernog protokola. Nakon završene demonstracije, predavanje je zaključeno navođenjem mana ovog protokola, kao i diskutovanjem o slučajevima upotrebe gRPC protokola.
Izvori koji su Luki bili korisni su: knjiga – gRPC: Up and Running, knjiga – Beginning gRPC with ASP.NET Core 6, REST vs GraphQL vs gRPC, What’s the Difference Between gRPC and REST?, 6 Software Architecture Trends for 2023 & Beyond!