專案概覽
MEXAR 國際匯款系統的 messaging microservice。同時提供直接的 SMS 發送,以及用於 OTP 驗證的 VerifyNow API。整合了多家 SMS 供應商,可跨不同國家自動容錯切換並進行成本最佳化。透過 Webhook 與 Kafka 與核心後端通訊。
技術棧
- Backend — Python/FastAPI
- Message Queue — Kafka、RabbitMQ
- 服務間通訊 — Webhook、Kafka
核心功能
- 直接 SMS — 用於通知與狀態更新的交易型 SMS 發送
- VerifyNow API — 透過 reference ID 進行 OTP 的產生、發送與驗證;消費端服務從不接觸原始 OTP 代碼,降低安全曝險
- 多供應商容錯 — 當某供應商發生故障時自動切換供應商,確保發送可靠性
- 成本最佳化 — 透過多供應商路由,善用各國家/地區的最低成本
設計原則
- Extensibility — 與供應商無關的抽象層,使得更換 SMS gateway 時無須修改核心邏輯
- 安全性 — OTP 代碼隔離於 messaging 服務內部;消費端服務僅透過 reference ID 互動
- Idempotency — 透過冪等處理保證 exactly-once 的訊息發送
- Scalability — 透過 Kafka 進行非同步訊息處理,以因應高吞吐量場景

