Appearance
Webhook Infrastructure
Epic: Inbound Webhook Processing
Plan: Build a Salesforce-terminated webhook endpoint that receives events, verifies signatures, deduplicates, and enqueues work for async processing.
Architectural Context: Inbound webhooks are the primary mechanism for Salesforce-to-platform event delivery. The termination point validates request signatures, deduplicates via event ID (24h Redis TTL), and enqueues work asynchronously (returns 202). This keeps the webhook endpoint fast and resilient to downstream failures.
Tasks
- Implement
POST /v1/webhooks/salesforce/memberstermination point - Build signature verification (custom header signed with shared secret)
- Implement deduplication via event ID with 24h Redis TTL
- Build async processing pipeline (enqueue work, return 202)
Epic: Outbound Webhook Delivery
Plan: Deliver platform events to external consumers via a subscription model with at-least-once delivery and idempotency guarantees.
Architectural Context: Consumers subscribe to events and receive normalized webhook payloads. The system supports vendor-specific subscription handling (Platform Events, webhooks) and guarantees at-least-once delivery with bounded retries. Every delivery includes an idempotency key to prevent duplicate processing on the consumer side.
Tasks
- Implement event subscription model for consumers
- Build vendor-specific subscription handling (Platform Events, webhooks)
- Normalize event format for consumers
- Implement at-least-once delivery with bounded retries
- Build idempotency keys on every delivery
Epic: Future Webhook Capabilities
Plan: Plan for Change Data Capture (CDC) subscription via Salesforce Streaming API as a future enhancement.
Architectural Context: CDC provides real-time data change notifications from Salesforce without polling. Events are normalized into the standard webhook format for consistent consumer handling.
Tasks
- Change Data Capture (CDC) subscription via Streaming API
- CDC event normalization into standard webhook format