Introducing WebhookRelay: Modern .NET Open Source Webhook Management
These articles are AI-generated summaries. Please check the original sources for full details.
Introducing WebhookRelay: A Modern .NET Open Source Webhook Management Platform
WebhookRelay is an open-source, self-hosted management platform built specifically for the (beta) .NET ecosystem. It leverages ASP.NET Core 8 and System.Threading.Channels to handle high-performance, in-process queueing for webhook ingestion and delivery.
Why This Matters
Managing webhooks at scale requires handling diverse HMAC algorithms from providers like Stripe and GitHub, which often leads to complex custom code or expensive vendor lock-in. WebhookRelay addresses this by providing a unified infrastructure with built-in signature verification and exponential backoff retries. This approach bridges the gap between unreliable network delivery and the consistency required by mission-critical enterprise integrations.
Key Insights
- Multi-provider ingestion supports Stripe, GitHub, and Twilio with native signature verification out of the box (2026).
- High-performance queuing uses System.Threading.Channels for efficient, in-process event handling without external dependencies.
- Security is prioritized via constant-time HMAC comparisons to mitigate timing attacks during provider validation.
- Real-time observability is achieved through ASP.NET Core SignalR and a React 19 dashboard for live syntax-highlighted event monitoring.
- Infrastructure flexibility allows switching between SQLite, SQL Server, and PostgreSQL via simple configuration changes.
Working Examples
Configuration for SQLite database provider.
{
"DatabaseProvider": "Sqlite",
"ConnectionStrings": {
"DefaultConnection": "Data Source=webhookrelay.db"
}
}
Command to send a signed webhook to the relay.
SECRET="your-signing-secret"
PAYLOAD='{"event":"payment.completed","amount":100}'
SIG=$(echo -n "$PAYLOAD" | openssl dgst -sha256 -hmac "$SECRET" | awk '{print $2}')
curl -X POST https://localhost:5001/webhooks/<endpoint-id> \
-H "Content-Type: application/json" \
-H "x-webhook-signature: sha256=$SIG" \
-H "x-webhook-event: payment.completed" \
-H "x-webhook-id: evt-$(date +%s)" \
-d "$PAYLOAD"
Example of Stripe webhook handler with routing rules.
{
"endpoint": "stripe-payments",
"targets": [
{
"url": "https://api.myapp.com/payments",
"rules": [{ "path": "$.type", "operator": "equals", "value": "payment_intent.succeeded" }]
},
{
"url": "https://analytics.myapp.com/events",
"rules": [{ "path": "$.type", "operator": "contains", "value": "payment" }]
}
]
}
Practical Applications
- E-commerce Integration: Routing Stripe webhooks to specific targets based on payment status; Pitfall: Failing to verify HMAC signatures leading to spoofing vulnerabilities.
- CI/CD Automation: Fanning out GitHub webhooks to multiple notification and build systems; Pitfall: Lack of idempotent processing causing duplicate build triggers.
- Multi-System Coordination: Synchronizing CRM data across Salesforce and HubSpot simultaneously; Pitfall: Insufficient retry mechanisms during network outages causing data loss.
References:
Continue reading
Next article
Designing a Kafka-Like Message Queue in Java: LLD Best Practices
Related Content
Mastering Multi-SMTP Delivery and Smart Failover in SHONiR CMS
SHONiR CMS introduces a robust Mail Servers management system featuring automated failover with 12 retries and SMTP relay limit handling for CodeIgniter 4 applications.
Beyond Feature Delivery: How Open Source Redefines Software Engineering Mindsets
Open source contributor Tarunya Kesharwani details how GSoC participation and PR reviews shift engineering focus from basic feature completion to long-term maintainability, highlighting that professional software engineering requires balancing immediate functionality with architectural scalability and collaborative code standards across diverse technology stacks.
Full Stack Authentication in 2026: Next.js, Better Auth, and Drizzle ORM
Build a modern, type-safe authentication system using Next.js, Better Auth, and Drizzle ORM to eliminate boilerplate and manual session handling in 2026.