My fresh contribution to the Open Source is a microservice communication library for RabbitMQ. It supports distributed tracing (Application Insights currently, Open Tracing in prospect) and JWT bearer authorization.

Why I did it?

It can be valuable in the world of microservices because:

  1. Distributed tracing is the way to troubleshoot long request chains; "micro" for services implies a lot of them, that's why request chains tend to be long, arising difficulty for finding failure root causes. Distributed tracing suits well for that, check it out.
  2. Bearer token is a must have for user identification and authorization through the call chains. Scope checks allows you to enforce permissions at microservice level.

JWT bearer token and distributed tracing for HTTP had been there for the years, but they weren't for RabbitMQ.

Read more why should we build microservices with RabbitMQ.

How to use it?

Library itself (.NET Standard) —

Usage example —

How to contribute?

I invite you to make compatible ports for other languages (I did it for .NET) or improve my code by making PRs on GitHub.