A look into my project: Apache Qpid!

Rakhi Kumari
4 min readJun 27, 2021

Hello everyone!

I am back with another blog of my outreachy journey. It has been five weeks now but it feels as if it all started a few days back only. 🙂

Today, I am going to explain my project i.e. Apache Qpid Proton on which I am working as an Outreachy intern, but before that a brief introduction of the organization under which I am working.

The Apache Software Foundation(ASF) is the world’s largest Open Source foundation, popularly known for its Apache HTTP server. It is an American nonprofit corporation to supports a number of open source software projects. The software they produce is distributed under the terms of the Apache License and is free and open-source software (FOSS).

Valued at more than $20B -and provided to the public-at-large at 100% no cost- Apache software is used in every Internet-connected country on the planet.

Providing softwares to the global public good! The open source world is amazing, right?

What is Apache Qpid?

Qpid is the home for AMQP at Apache.

So, to understand “What Qpid is?” we first have to take a look at “What AMQP is?”.

AMQP is an acronym used for the Advanced Message Queuing Protocol. AMQP is an open internet protocol for reliably sending and receiving messages. It can be used to build cross-platform, hybrid applications.

Traditionally, message-oriented middleware products have used communications protocols, that are owned by a single organization or individual, for communication between client applications and brokers.
That means that once we’ve selected a particular vendor’s messaging broker, we must use that vendor’s libraries to connect our client applications to that broker. That results in a degree of dependence on that vendor.

But the problem doesn’t end there. The tech world is growing very fast, new programming languages and application frameworks are getting introduced at a very rapid pace. Also, the requirements of IT systems are evolving over time and the developers want to make use of the latest platform features.
But sometimes the selected messaging vendor doesn’t support these platforms. Therefore, you must use approaches such as building gateways or bridges that enable you to continue to use the messaging product.

That’s where the Advanced Message Queuing Protocol (AMQP) comes to the rescue.
AMQP is an open-standard messaging protocol that made it possible to build message-based applications using components built using different languages, frameworks, and operating systems.

So, AMQP is a protocol and Apache Qpid is its implementation.

The Apache Qpid offers two kinds of components:

  • Messaging APIs for building AMQP applications.
  • Messaging servers for deploying AMQP networks.

You can use them together to build robust distributed applications.

So, What is Qpid Proton?

Qpid proton comes under messaging APIs that can be used to implement any kind of messaging component, including clients, servers, bridges, and proxies.

In short, Qpid Proton is a high-performance, lightweight messaging library whose goal is to make it trivial for any application to speak AMQP 1.0 regardless of language, platform, or environment.

My main task in Apache Qpid is to implement distributed tracing for Qpid Proton C++ using OpenTelemetry.

What is Distributed tracing?

Distributed tracing is a method used to profile and monitor applications, especially those built using a microservices architecture. We can monitor our applications by observing their traces, logs, metrics, etc. Distributed tracing helps pinpoint where failures occur and what causes poor performance.

One of the ways to attain distributed tracing is the CNCF observability framework- OpenTelemetry.

OpenTelemetry

OpenTelemetry is a collection of tools, APIs, and SDKs. You can use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) for analysis in order to understand your software’s performance and behavior.

How can you contribute to Apache?

Apache is an open source foundation, so its project’s source code is designed to be publicly accessible-anyone can see, modify, and distribute the code as they see fit.

If you want to start contributing to Apache you can easily find its project’s source code at GitHub and issues on JIRA (some projects also have their issues on GitHub too). Just choose a project of your interest and get started!!

Believe me, open source communities are very welcoming.

Apache’s projects on Github: https://github.com/apache

Apache’s JIRA issue tracker: https://issues.apache.org/jira/secure/Dashboard.jspa

Happy contributing and have a nice day!! 🙂

Published

Originally published at http://rakhiroriya.wordpress.com on June 27, 2021.

--

--

Rakhi Kumari

Engineer at Red Hat | Outreachy’21 Alum at The Apache Software Foundation