$30 off During Our Annual Pro Sale. View Details »

Choosing the Right Tool - A Comparative Look at...

Avatar for Posedio Posedio PRO
February 12, 2024

Choosing the Right Tool - A Comparative Look at gRPC, REST an GraphQL

In the ever-evolving landscape of web development, the choice of technology can drastically impact the design and efficiency of the application. This talk aims to demystify and compare three key players in API communication: gRPC, REST, and GraphQL. We delve into what makes each of these technologies unique, and more importantly, how to determine which is the best fit for your specific project needs.

Avatar for Posedio

Posedio PRO

February 12, 2024
Tweet

More Decks by Posedio

Other Decks in Programming

Transcript

  1. CHOOSING THE RIGHT TOOL: A COMPARATIVE LOOK AT GRPC, REST,

    AND GRAPHQL JAVA MEETUP - VIENNA DAMJAN GJUROVSKI 21 May 2024
  2. 4 HI • Damjan Gjurovski • Dev and Ops J

    • Written REST code for a long while, dabbled in GraphQL for some frontend apps and implemented (and debugged) gRPC in performance-critical applications
  3. WHAT’S IN IT FOR ME 1. The sandbox 2. REST,

    GraphQL, gRPC – what do the letters mean 3. Let’s compare them, but fairly 4.What should I use in my project?
  4. 7 OUR TINY APP • Book rooms in a hotel

    • Mental model • What would a database model look like • What would Java entities look like
  5. 9 REST • Representational state transfer • Resources on the

    server • Identifiers • Representation over the wire • HTTP verbs to modify state
  6. 10 REST PROBLEMS • Misuse / verbs in URL •

    Batch transactions • Partial data requests
  7. 11 GRAPHQL • Only request data as needed • Schema

    is defined separately, and compatibility can be ensured/enforced
  8. 13 GRPC • Binary protocol – super fast • Protobuf

    schema is defined separately, and compatibility can be ensured/enforced • Nice features for scale
  9. 14 GRPC PROBLEMS • Remote procedure calls • Server to

    server communication • Code generation / stubs • Debugging
  10. 16 • Client – Server • Browser – Server •

    API Client - Server • Server – Server • Microservices • Backend servers COMMUNICATION TYPES
  11. 17 • Lots of data • Only partially used data

    • Streaming data • Little data • Data represents state DATA
  12. 22 THIS IS THE WAY • Use gRPC for critical,

    complex projects • Use graphQL when you need to support multiple clients with different needs • When not sure use REST