项目概览
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 进行异步消息处理,以因应高吞吐量场景

