@SanhitaDawn Agreed. Independent subscriptions allow channel-specific scaling and failure isolation without requiring one worker pool to handle every provider.
We’d use a stable idempotency key per notification and channel, backed by a unique DB constraint to prevent duplicate processing. Retries reuse the same key, and provider-side idempotency helps cover failures after a successful send but before acknowledgment. For providers without it, we’d reconcile delivery status before retrying.
A worker charges a customer...
Then crashes before acknowledging the message.
The message is delivered again.
How do you prevent a double charge?
#SystemDesign#DistributedSystems#Idempotency
Ready to level up your engineering skills? 🥋
Celebrate Navratri with 50% OFF on ScaleDojo! 🎉
Use code NAVRATRI50 at checkout.
Offer ends October 20. Don't miss out!
#Navratri#SystemDesign#GenAI#ScaleDojo
Two regions accept writes.
The network splits for 60 seconds.
Both accept conflicting updates.
When the partition heals, who wins?
#SystemDesign#DistributedSystems#CAPTheorem
@kanishk_jainn Right. Idempotency prevents duplicate processing of the same operation; it doesn't decide which of two distinct conflicting updates should win.