Software Engineering Institute | Carnegie Mellon University
Software Engineering Institute | Carnegie Mellon University

Digital Library

Javascript is currently disabled for your browser. For an optimal search experience, please enable javascript.

Advanced Search

Basic Search

Content Type

Topics

Publication Date

Presentation

From REST to gRPC: An API Evolution Story

  • May 2017
  • By Michael Keeling (IBM Watson Group), Joe Runde (IBM)
  • In this talk, we describe how we moved backing Watson Discovery microservices from REST to gRPC and the lessons we learned in the process.
  • Publisher: Software Engineering Institute
  • This presentation was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.
  • Abstract

    An existing REST-based microservice, a new requirement to use gRPC, a team under pressure to ship… In this talk, we describe how we moved backing Watson Discovery microservices from REST to gRPC and the lessons we learned in the process.

    The APIs for components in fine-grained service-oriented architectures strongly influence the eventual properties expressed in the system. REST over HTTP is a popular choice for microservices APIs because it promotes openness, self-discovery, and simplicity. One alternative to REST is gRPC, an implementation of Protobuf. As an RPC-based API, gRPC inhibits openness and self-discovery but promotes performance and, depending on the implementation, can provide stronger compile-time (or at least call-time) guarantees, which help developers avoid mistakes. By the end of this talk, attendees will know

    • what gRPC is and how it is different from REST
    • how to organize code to make API transitions easier
    • the benefits of functional testing using Cucumber and tips for creating extensible gRPC API tests using Ruby
    • how to implement common REST patterns in gRPC
    • common pitfalls for using gRPC in a microservices architecture and some solutions
  • Download

Part of a Collection

SATURN 2017 Presentations