gRPC
-
Control Your Services With OTEL, Jaeger, and Prometheus
Let’s discuss an important question: how do we monitor our services if something goes wrong? On the one hand, we have Prometheus with alerts and Kibana for dashboards and other helpful features. We also know how to gather logs — the ELK stack is our go-to solution. However, simple logging isn’t always enough: it doesn’t provide a holistic view of a request’s journey across the entire ecosystem of components. You can find more info about ELK here. But what if…
-
Tracing With OpenTelemetry and Jaeger
Tracing, a critical component, tracks requests through complex systems. This visibility reveals bottlenecks and errors, enabling faster resolutions. In a previous post of our Go web services series, we explored observability’s significance. Today, we focus on tracing. Jaeger collects, stores, and visualizes traces from distributed systems. It provides crucial insights into request flows across services. By integrating Jaeger with OpenTelemetry, developers can unify their tracing approach, ensuring consistent and comprehensive visibility. This integration simplifies diagnosing performance issues and enhances system…
-
5 Steps To Integrate Istio With OPA
Authentication and Authorization are big parts of the security puzzle that need to be solved by cloud architects and DevOps engineers. In this blog, we will specifically look at how to achieve authorization/access control; i.e., what actions the authenticated entity can perform in the Istio service mesh. It helps to secure the infrastructure by preventing actions with malicious intent. Authorization in a service mesh can be defined using OPA policies. OPA is a mechanism that helps DevOps folks define and…
-
gRPC vs REST: Comparing Approaches for Making APIs
In today’s text, I want to take a closer look at gRPC and REST, probably two of the most commonly used approaches for creating API nowadays. I will start with a short characteristic of both tools — what they are and what they can offer. Then I will compare them according to seven categories, in my opinion, most crucial for modern-day systems. The categories go as follows: Underlying HTTP protocols Supported data formats Data size Throughput Definitions Ease of adoption Tooling support…
-
Build a Simple Chat Server With gRPC in .Net Core
In this article, we will create a simple concurrent gRPC chat server application. We will use .NET Core, a cross-platform, open-source, and modular framework, to build our chat server application. We will cover the following topics: A brief introduction to gRPC Setting up the gRPC environment and defining the service contract Implementing the chat service and handling client requests Handling multiple clients concurrently using asynchronous programming Broadcasting chat messages to all connected clients in the same room By the end…
-
gRPC on the Client Side
Most inter-systems communication components that use REST serialize their payload in JSON. As of now, JSON lacks a widely-used schema validation standard: JSON Schema is not widespread. Standard schema validation allows delegating the validation to a third-party library and being done with it. Without one, we must fall back to manual validation in the code. Worse, we must keep the validation code in sync with the schema. XML has schema validation out-of-the-box: an XML document can declare a grammar that…
-
Understanding gRPC Concepts, Use Cases, and Best Practices
As we are progressing with application development, among various things, there is one primary thing we are less worried about: computing power. Because with the advent of cloud providers, we are less worried about managing data centers. Everything is available within seconds on-demand. This leads to an increase in the size of data as well. Big data is generated and transported using various mediums in single requests. With the increase in the size of data, we have activities like serializing,…
-
An In-Depth Exploration of REST, gRPC, and GraphQL in Web Projects
In the dynamic landscape of web development, the choice of an API technology plays a pivotal role in determining the success and efficiency of a project. In this article, we embark on a comprehensive exploration of three prominent contenders: REST, gRPC, and GraphQL. Each of these technologies brings its own set of strengths and capabilities to the table, catering to different use cases and development scenarios. What Is REST? REST API, or Representational State Transfer Application Programming Interface, is a…
-
gRPC vs. REST: Differences, Similarities, and Why To Use Them
The popular client-server architecture divides communication into two parts: one that takes up all heavy tasks and provides services, known as the server, and the other one that enjoys those services, known as the client. In general client-server communication, the client simply sends a request asking for resources or services to the server, and the server responds to that request. For client-server communication, clients and servers need to have libraries that can understand the protocol in which they are communicating.…