In 2019 I have contributed to Open Source the communication library for RabbitMQ microservices. 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 (I use it at my work) because:
- Distributed tracing is the tool to troubleshoot long request chains; “micro” for services implies a lot of them, that’s why request chains tend to be long, arising difficulty to finding failure root causes. Distributed tracing suits well for that, check it out.
- 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.
How to use it?
Library itself (.NET Standard) — https://github.com/dmlarionov/RabbitMQ.TraceableMessaging.
Usage example — https://github.com/dmlarionov/RabbitMQ.TraceableMessaging-example1.
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.