Implementing the support functions

As you may recall, the social graph implementation in the pkg/social_graph_manager package is completely transport agnostic. It implements the SocialGraphManager interface in terms of Go and couldn't care less whether the payload is JSON or protobuf and coming over the wire through HTTP, gRPC, Thrift, or any other method. The service is responsible for translation, encoding, and decoding. These support functions are implemented in the transport.go file.

For each endpoint, there are three functions, which are the input to the HTTP transport's NewServer() function of Go kit:

  • The Endpoint factory function
  • The request decoder
  • The response encoder

Let's start with the Endpoint factory function, which is the ...

Get Hands-On Microservices with Kubernetes now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.