What is xDS ? What is xDS Protocol ?

Lahiru Chandima
3 min readFeb 22, 2024

--

Photo by Brian McGowan on Unsplash

Hello everyone đź‘‹. Hope you found this article while searching for a simplified explanation regarding the xDS or xDS protocol. As of now (22 Feb 2024) I can confidently say that this is the best simplified explanation regarding the xDS.🙂

xDS stands for x Discovery Service.

Letter x is used to denote any arbitrary resource type. Therefore as the name implies, xDS is a service that enables to discover any given arbitrary resource type. xDS related communications happen according to the xDS protocol. Okay. Enough simple explanations. Let’s discuss the topics now.

Photo by Tolgahan Akbulut on Unsplash

xDS is a set of APIs used to facilitate data plane communication (xDS is mainly used to obtain data plane related configuration details). In cloud computing world, there are two abstraction layers called data plane and control plane. These concepts are highly used in service meshes. In simple terms control plane configures the data plane. Thereafter data plane handles the network work loads (request handling) according to the configured criteria.

Now xDS is considered as the universal data plane API. One of the initial tools that started to use xDS is the Envoy proxy. It is a popular data plane component used in the service mesh architecture. Since it works in the data plane, it need to be configured or it requires configuration details. That’s where the xDS comes in to play.

Envoy obtains configuration details by querying one or more management servers in the control plane. Configuration providing sources are considered as resources. Resources are obtained via subscriptions. Resources are accessible in three different ways.

  • Via a file system path
  • Via gRPC streams (this is where the xDS is used)
  • By polling a JSON REST URL.

In this explanation, we are considering only the second approach. That is where the xDS comes into play. xDS APIs are implemented considering the gRPC streams. gRPC is an open source high performance remote procedure calling framework developed by Google. gRPC includes bidirectional streaming capability (client and server can communicate with each other simultaneously via HTTP2). xDS APIs are transferring data through these gRPC streams. Envoy can retrieve configuration details dynamically by using these streams from xDS. I.E. Envoy can obtain configuration details without restarting it. In Envoy terminology, we call this as Dynamic Resource Discovery. Amazing right ?

Photo by Conny Schneider on Unsplash

But in order to communicate in a commonly accepted way there should be a protocol. xDS protocol defines standardised ways to communicate with xDS APIs (services).

In the next article let’s discuss how Envoy proxy obtains dynamic configurations via xDS according to the xDS protocol. Hope you able to clarify the xDS related concepts properly after reading this article.

If so, please 👏 this article as a support. Thanks in advance. 🙂

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response