OpenMessage originally started out as a replacement for an internal library that was used across teams. At the time, the team I was apart of needed the latest version of dotnet core for the library where as the other team were stuck on RC1. They were also developing features for that version of the framework and a few pre-existing details that we were unhappy with (eg: the request/response implementation). With that in mind, I created a minimal wrapper for what we needed. Looking forward, I plan to dedicate a bit more time to the project and improve it.
Support for web hook scenarios
This is probably one of the bigger ideas that I have had in mind for the last month or so purely for the power that it could bring to applications. One of the core parts of our infrastructure was taking a web request generated by an external system and translating this into a message to be placed on Azure Service Bus. I see two main parts to this functionality:
- Support for incomming web hooks
- Support for sending web hooks
For each portion, the framework will need to consider whether or not to send/receive to/from unique endpoints or an endpoint per message. Initially, this will be decided at composition, but may be extended to dynamic re-configuration at a later stage (which will need to be considered throughout the framework). I intend to use some lightweight routing to do this, probably using the routing module from ASP.Net core, at least, initialy.
Support for additional providers
The more providers that the project has, the more flexibility you can have inside of your applications. The main providers that I have in mind are as follows:
- Azure Event Hubs
- Service Fabric Reliable Queues
- Rabbit MQ
- In Memory
There isn’t really too much to say about each of the above, except that the project will have support for each framework using the native providers. I did toy with the idea of building a complete AMQP library as part of this, but that seems a little overkill for the time being. I’ll see how the progression of libraries moving to dotnet core takes shape as another full library is quiet the undertaking.
Sample creation/tutorial series
One of the big pieces that is missing at the moment are public samples of how to use the project in your application. This will help ease the onboarding process for new users/developers.
Naturally, as part of all of this work, the dependencies will be kept up-to-date & bugs fixed. If there is something that you’d like to see, create an issue on github or tweet me.