Webhook architecture for managing millions of subscribers (who are customers)
My Azure based SaaS system publishes events and I have customers who wish to subscribe to them - webhooks seem undeniably the right architecture (And I'm currently a happy consumer of webhooks). I've found lots of great documentation and case studies on best practices (e.g. http://resthooks.org) however I've not managed to find an existing architecture, framework, project, sample or solution that implements the best practices.
I could build my own solution however I don't want to reinvent the wheel. I was expecting to find an existing framework (e.g. on Github) created by people much smarter than I but haven't had any success.
I currently use a number of Azure services (such as Service Bus, Cosmos, Table Storage) internally and consume using Azure Functions but what I don't have is an architecture for allowing my customers to subscribe to these events.
Specifically I'm looking for best practices and code samples on how to manage potentially millions of subscribers (who are external customers) and the approach to distribute the webhooks out to each of them.
I already understand how to publish and consume webhooks where I am an individual subscriber and there are already some great samples available - https://github.com/aspnet/AspLabs/tree/master/src/WebHooks
Can anyone point me in the right direction? (Preferably to a .NET / C# based solution)
azure events architecture webhooks publish-subscribe
add a comment |
My Azure based SaaS system publishes events and I have customers who wish to subscribe to them - webhooks seem undeniably the right architecture (And I'm currently a happy consumer of webhooks). I've found lots of great documentation and case studies on best practices (e.g. http://resthooks.org) however I've not managed to find an existing architecture, framework, project, sample or solution that implements the best practices.
I could build my own solution however I don't want to reinvent the wheel. I was expecting to find an existing framework (e.g. on Github) created by people much smarter than I but haven't had any success.
I currently use a number of Azure services (such as Service Bus, Cosmos, Table Storage) internally and consume using Azure Functions but what I don't have is an architecture for allowing my customers to subscribe to these events.
Specifically I'm looking for best practices and code samples on how to manage potentially millions of subscribers (who are external customers) and the approach to distribute the webhooks out to each of them.
I already understand how to publish and consume webhooks where I am an individual subscriber and there are already some great samples available - https://github.com/aspnet/AspLabs/tree/master/src/WebHooks
Can anyone point me in the right direction? (Preferably to a .NET / C# based solution)
azure events architecture webhooks publish-subscribe
1
Have you looked at using custom events in event grid?
– Sam Cogan
Nov 15 '18 at 11:12
Event Grid definitely looks like an excellent foundation to build upon and it ties in nicely with my Azure based solution (oh how I love Azure - just had to throw that in). From what I can see it will require some customisation in order to connect subscriptions to my specific customers but definitely more sane than building from scratch. I'll do some more research and get a handle on the level of effort required between what Event Grid provides and my (largely conceptual at this stage) requirements.
– Fanetic
Nov 15 '18 at 22:25
add a comment |
My Azure based SaaS system publishes events and I have customers who wish to subscribe to them - webhooks seem undeniably the right architecture (And I'm currently a happy consumer of webhooks). I've found lots of great documentation and case studies on best practices (e.g. http://resthooks.org) however I've not managed to find an existing architecture, framework, project, sample or solution that implements the best practices.
I could build my own solution however I don't want to reinvent the wheel. I was expecting to find an existing framework (e.g. on Github) created by people much smarter than I but haven't had any success.
I currently use a number of Azure services (such as Service Bus, Cosmos, Table Storage) internally and consume using Azure Functions but what I don't have is an architecture for allowing my customers to subscribe to these events.
Specifically I'm looking for best practices and code samples on how to manage potentially millions of subscribers (who are external customers) and the approach to distribute the webhooks out to each of them.
I already understand how to publish and consume webhooks where I am an individual subscriber and there are already some great samples available - https://github.com/aspnet/AspLabs/tree/master/src/WebHooks
Can anyone point me in the right direction? (Preferably to a .NET / C# based solution)
azure events architecture webhooks publish-subscribe
My Azure based SaaS system publishes events and I have customers who wish to subscribe to them - webhooks seem undeniably the right architecture (And I'm currently a happy consumer of webhooks). I've found lots of great documentation and case studies on best practices (e.g. http://resthooks.org) however I've not managed to find an existing architecture, framework, project, sample or solution that implements the best practices.
I could build my own solution however I don't want to reinvent the wheel. I was expecting to find an existing framework (e.g. on Github) created by people much smarter than I but haven't had any success.
I currently use a number of Azure services (such as Service Bus, Cosmos, Table Storage) internally and consume using Azure Functions but what I don't have is an architecture for allowing my customers to subscribe to these events.
Specifically I'm looking for best practices and code samples on how to manage potentially millions of subscribers (who are external customers) and the approach to distribute the webhooks out to each of them.
I already understand how to publish and consume webhooks where I am an individual subscriber and there are already some great samples available - https://github.com/aspnet/AspLabs/tree/master/src/WebHooks
Can anyone point me in the right direction? (Preferably to a .NET / C# based solution)
azure events architecture webhooks publish-subscribe
azure events architecture webhooks publish-subscribe
edited Nov 15 '18 at 10:31
Fanetic
asked Nov 15 '18 at 7:26
FaneticFanetic
1028
1028
1
Have you looked at using custom events in event grid?
– Sam Cogan
Nov 15 '18 at 11:12
Event Grid definitely looks like an excellent foundation to build upon and it ties in nicely with my Azure based solution (oh how I love Azure - just had to throw that in). From what I can see it will require some customisation in order to connect subscriptions to my specific customers but definitely more sane than building from scratch. I'll do some more research and get a handle on the level of effort required between what Event Grid provides and my (largely conceptual at this stage) requirements.
– Fanetic
Nov 15 '18 at 22:25
add a comment |
1
Have you looked at using custom events in event grid?
– Sam Cogan
Nov 15 '18 at 11:12
Event Grid definitely looks like an excellent foundation to build upon and it ties in nicely with my Azure based solution (oh how I love Azure - just had to throw that in). From what I can see it will require some customisation in order to connect subscriptions to my specific customers but definitely more sane than building from scratch. I'll do some more research and get a handle on the level of effort required between what Event Grid provides and my (largely conceptual at this stage) requirements.
– Fanetic
Nov 15 '18 at 22:25
1
1
Have you looked at using custom events in event grid?
– Sam Cogan
Nov 15 '18 at 11:12
Have you looked at using custom events in event grid?
– Sam Cogan
Nov 15 '18 at 11:12
Event Grid definitely looks like an excellent foundation to build upon and it ties in nicely with my Azure based solution (oh how I love Azure - just had to throw that in). From what I can see it will require some customisation in order to connect subscriptions to my specific customers but definitely more sane than building from scratch. I'll do some more research and get a handle on the level of effort required between what Event Grid provides and my (largely conceptual at this stage) requirements.
– Fanetic
Nov 15 '18 at 22:25
Event Grid definitely looks like an excellent foundation to build upon and it ties in nicely with my Azure based solution (oh how I love Azure - just had to throw that in). From what I can see it will require some customisation in order to connect subscriptions to my specific customers but definitely more sane than building from scratch. I'll do some more research and get a handle on the level of effort required between what Event Grid provides and my (largely conceptual at this stage) requirements.
– Fanetic
Nov 15 '18 at 22:25
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53314336%2fwebhook-architecture-for-managing-millions-of-subscribers-who-are-customers%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53314336%2fwebhook-architecture-for-managing-millions-of-subscribers-who-are-customers%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Have you looked at using custom events in event grid?
– Sam Cogan
Nov 15 '18 at 11:12
Event Grid definitely looks like an excellent foundation to build upon and it ties in nicely with my Azure based solution (oh how I love Azure - just had to throw that in). From what I can see it will require some customisation in order to connect subscriptions to my specific customers but definitely more sane than building from scratch. I'll do some more research and get a handle on the level of effort required between what Event Grid provides and my (largely conceptual at this stage) requirements.
– Fanetic
Nov 15 '18 at 22:25