top | item 45936284

(no title)

selenehyun | 3 months ago

It is not open source, but I am still proud of a message delivery system I designed and built alone two years ago. It consists of six independent components and guarantees at least one successful delivery as long as the database remains available. It supports AWS SES, Twilio SMS and MMS, Webhook, Discord messages, and can easily add new providers through an adapter pattern.

Messages are queued through an API, captured by Debezium, produced to Kafka, delivered by workers, logged, and updated through DSNs received via webhook. Failures go to a DLQ where they are retried until the limit is reached.

Each stage runs independently, so any failure only causes minor delay without risking unintended drops. With Prometheus metrics in place, this system has processed more than two hundred thousand messages per day in production for two years without a single reported loss.

discuss

order

No comments yet.