Frequently Asked Questions
Last updated
Last updated
A: We didn't have the ambition to develop this project, but rather to use some already available, anyway given the conditions we were in, we could not find any fitting alternative:
, before being retired, supported only the .NET 4.6 framework
was demoted to an experimental project (within the scope of space), and anyway did not provide any capability for the management of subscriptions, or logging results of deliveries
provides functionalities for the management and sending of webhooks that are embedded into a more extended framework, that we didn't want to use in its entirety.
A: Since the version 2.1.1, the framework supports both .NET 6.0 and .NET 7.0, and therefore it can be used in any .NET implementation that supports this version of the standard.
Previous versions are built on the .NET 6.0 framework only.
A: No. Not at the moment.
The origin of this project was to support a commercial service, and we wanted to provide the community with the outcomes of our experiences and finding in this specific area.
A: As pointed out in the answer provided above (and on the motivations of this project), currently Microsoft provides no stable alternatives to handle webhook subscription management and notifications, but just an experimental framework to implement receivers of webhooks from major service providers.
A: Yes. The server part of the framework provides a mechanism to manage webhook subscriptions, that can be used to register a webhook endpoint to receive webhooks from your applications (as provider).
A: The current implementation of the framework provides a MongoDB and an Entity Framework Core persistency layer, but we are open to contributions to support other persistency layers.
A: Yes. Since version 2.0.1, the framework supports JSON and XML formats for sending webhooks, while for the receiving part it support JSON, XML and Forms (application/x-www-form-urlencoded Content-Type) formats, that is dependent on the receiver implementation.
A: Yes. Since version 2.0.1, the framework supports the validation of the signature of the webhook payload, using the HMAC-SHA256 and HMAC-SHA1 algorithms, and the secret key provided by the subscription.
A: Not at the moment.
Encrypting and decrypting messages is an intensive operation, and it is not in the scope of the framework to provide this functionality at the moment, especially in consideration of the messaging nature of webhooks.
A: Yes. The framework supports retry policies for the delivery of webhooks, that is applied when the delivery of a webhook fails. The policy can be defined at the level of the subscription, or at the level of the webhook itself.
A: No. It is not in the scope of the framework to provide a scheduler for the delivery of webhooks. The framework provides a mechanism to trigger the delivery of webhooks, but it is up to the application to implement a scheduler that triggers the delivery of webhooks.
A: Yes. The framework provides a mechanism to log the results of the delivery of webhooks, that can be used to persist the results of the delivery of webhooks. The framework provides a default implementation of the logging mechanism that uses the data layer to persist the results of the delivery of webhooks.
A: No. At the moment the framework does not provide any mechanism to throttle the delivery of webhooks, but this is something that we are considering to implement in the future.
A: Not at the moment, but we have included in the issues as an idea to implement in the future.
A: No. It is a good idea to explore for future implementations.
A: At the moment the framework supports the following external webhook providers:
Follow the issues of this project to see which providers are planned to be supported in the future.
The framework also provides a generic receiver that can be used to implement a webhook receiver for any other provider, including your own applications.
The data model of subscriptions and webhooks is not complex and should not be a challenge to contribute with alternatives (please refer to the ).