Billing and Payment Platform
Bài tóm tắt Grammarly 2023 3. Quy mô lớn Độ khó: Dễ
Grammarly · 2023 · 3. Quy mô lớn · Độ khó: Dễ — bài gốc
Bài tổng quan ở mức cao: liệt kê yêu cầu và danh sách pattern, không kể lại quyết định hay sự cố nào, không có sơ đồ chi tiết trong bản đọc được. Hữu ích như một checklist của hệ thanh toán, không phải một câu chuyện tiến hoá.
Bối cảnh
- Hơn 30 triệu người dùng mỗi ngày (2023), gói Free/Premium/Business; nhiều tiền tệ địa phương (USD, EUR, GBP, INR), nhiều phương thức thanh toán, tích hợp nhiều PSP và orchestrator để giữ tỉ lệ duyệt giao dịch cao.
- Phạm vi Billing: đóng gói sản phẩm, mô hình tính tiền, giá và khuyến mãi, hoá đơn và thuế, kế toán. Phạm vi Payments: phương thức thanh toán (UI, kết nối nhà cung cấp, định tuyến, retry, đối soát), pháp nhân địa phương, chống gian lận. Khách nội bộ cần công cụ tự phục vụ.
Thay đổi chính (các pattern được liệt kê)
- Hiệu năng, mở rộng: xử lý song song; scale độc lập từng service; optimistic locking để phát hiện xung đột giữa giao dịch nghiệp vụ đồng thời và rollback; giao tiếp giữa service theo sự kiện kèm backpressure.
- Chịu lỗi: transactional outbox (cập nhật DB và gửi message nguyên tử), circuit breaker, DLQ để điều tra message lỗi, xử lý message idempotent để retry không gây tác dụng phụ, rate limiting để một service không kéo sập billing của mọi service, timeout, retry cho lỗi tự lành (mạng, bên thứ ba sập).
- Quan sát: metric kỹ thuật và metric kinh doanh; alert cả hai loại (PSP không trả lời; tỉ lệ duyệt thanh toán đổi bất thường); trace và log xuyên luồng bất đồng bộ.
Bài học cho SWE
- Hệ thanh toán gặp gần như đủ các bài toán của hệ phân tán: không có transaction trải qua nhiều service và nhà cung cấp ngoài, nên ghép outbox + idempotency + retry thay cho nó (Giao dịch phân tán và nhất quán xuyên service).
- DLQ và idempotent consumer là cặp đi cùng nhau: một để không mất message lỗi, một để chạy lại an toàn (Event-driven, message queue và Kafka).
- Alert theo chỉ số kinh doanh (tỉ lệ duyệt) bắt được lỗi mà metric kỹ thuật không thấy, nhất là lỗi ở phía nhà cung cấp.
Liên quan
#Billing#Payment#PSP#Transactional outbox#Circuit breaker#DLQ#Idempotency#Optimistic locking#Rate limiting
Được nhắc tới trong
Công ty (1)
Bài tóm tắt (4)