RabbitMQ Traceable Messaging

Communication library for RabbitMQ to enable distributed tracing (Application Insights) and JWT bearer authorization.

What it for?

It can be valuable for RabbitMQ 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?

Library itself (.NET Standard) — https://github.com/dmlarionov/RabbitMQ.TraceableMessaging

Usage example — https://github.com/dmlarionov/RabbitMQ.TraceableMessaging-example1

How to contribute?

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