Default image

Pankaj

Software Architect @ Schlumberger ``` Cloud | Microservices | Programming | Kubernetes | Architecture | Machine Learning | Java | Python ```

gRPC: synchronous and asynchronous unary RPC in Java

Photo by Ramón Salinero on Unsplash
gRPC, a remote procedure call (RPC) framework, is used for inter microservices communication. The gRPC supports both unary RPC and streaming RPC. In gRPC unary RPC, a client sends a single request and receives a single response. Additionally, an RPC in gRPC can be synchronous or asynchronous. In synchronous RPC, a client call waits for the server to respond. As the name suggests, in asynchronous RPC the server returns the response asynchronously.

gRPC for microservices communication

Microservices inter-process communication using gRPC
A microservices-based software system requires applications to talk to each other using an inter-process communication mechanism. gRPC is a modern inter-process communication system that is scalable and more efficient than the traditional RESTful services.

RESTful Microservices with Spring Boot and Kubernetes

A microservice is built around business capability and DDD provides a framework for building microservices around business capabilities. Likewise, Event storming is a workshop-style, lightweight DDD framework. This article explains a recipe for building a microservice application using Spring Boot, DDD, Event Storming, and API-first design.

Components of Kubernetes Architecture

In recent times Kubernetes has become a de facto standard for deploying the containerized application in public, private, or hybrid cloud infrastructure. Kubernetes is an open-source container orchestration platform. Some of the important features provided by Kubernetes are - Automated rollouts and rollbacks, Service discovery, Self-healing, Horizontal scaling etc.

Helm Chart: quick start your app deployment on Kubernetes

Consider you need to deploy a complex microservices application on Kubernetes. Most likely you will end up maintaining many YAML files for each microservices. Maintaining those YAML files is complex and error-prone. This is where Helm comes into the picture. Helm is an application package manager for Kubernetes (think apt or yum or chocolatey for window). Helm downloads, installs, and deploys apps for you on the Kubernetes.