gRPC

gRPC in a Citrix ADC appliance is a light weight, high performance, and open-source universal Remote Procedure Call (RPC) framework. The framework is optimal to work across multiple languages running on any operation system. Also when compared to other protocols, gRPC offers better performance and security.

gRPC for Citrix ADC is preferred for the following reasons:

  • Build distributed applications for data-center and public/private cloud infrastructure.
  • Provide client-server communication for mobile, web, or cloud.
  • Access cloud services and applications
  • Microservice deployments

Why gRPC in Citrix ADC

gRPC in Citrix ADC is implemented over HTTP/2 to support highly performance and scalable APIs. The use of binary than text keeps the payload compact and efficient. In Citrix ADC, the HTTP/2 requests are multiplexed over a single TCP connection, allowing multiple concurrent messages to be in flight without compromising the network resource usage. It also uses header compression to reduce the size of requests and responses.

gRPC supports the following types of service methods for a client to remotely invoke parameters and return types.

  1. Unary RPC. Client sends a single request to the gRPC server and gets a single response back.

Example: rpc SayHello(HelloRequest) returns (HelloResponse);

  1. Server streaming RPC. Client sends a single request to the gRPC server and gets a stream response.

Example: rpc StreamingResponse(HelloRequest) returns (HelloResponse);

  1. Client streaming RPC. Client sends a sequence of messages and waits for the server to read and return its response.

Example: rpc IntroduceYourself(stream HelloRequest) returns (HelloResponse)

  1. Bidirectional streaming RPC. Both client and server from both sides send a stream of messages using read-write stream. The two streams operate independently.

Example: rpc ChatSession (stream HelloRequest) returns (stream HelloResponse)

Citrix ADC supports the following capabilities for its services with gRPC endpoints:

  • Load balancing
  • Content switching
  • Secure end-point services like Web Application Firewall, authentication and so forth.
  • Policy configuration
  • Stats and logging
  • Content rewriting, content filtering
  • Layer 4 and Layer 7 optimizations, TLS offering
  • Gateway solutions for protocol translations