What problem does it solve? Inbound webhooks from external services like Stripe, Paddle, or GitHub are unreliable by nature: providers retry on non-200 responses, deliver duplicate events, and require signature verification against raw request bytes. Without a structured pattern, webhook endpoints become fragile, process duplicates, and lose failed events silently. ## Core Features & Use Cases - 3-Layer Separation: Controllers handle HTTP concerns only, a webhook service verifies signatures and routes events, and business services execute domain logic with one handler per event type. - Signature Verification: SDK-based verification for Stripe, Paddle, and GitHub plus manual HMAC with constant-time comparison and timestamp validation. - Resilience & Recovery: Idempotency via processed-event tracking, failed webhook storage with admin retry endpoints, always-200 responses, and optional BullMQ retry queues with exponential backoff. - Use Case: When integrating Paddle subscription events into a NestJS app, apply this pattern to verify the paddle-signature header, deduplicate event IDs in PostgreSQL via Prisma, and route subscription.created events to a dedicated handler while storing any failures for later retry. ## Quick Start Ask the AI to implement a NestJS webhook endpoint for your payment provider using the 3-layer webhook architecture with signature verification and idempotent processing.