Build một "basic" Notification Service để send out emails, sms, push notification cho e-com system
TIL
719
White

Kim Long Dinh viết ngày 15/05/2019

Câu hỏi đặt ra:

  • Nếu phải build một "basic" Notification Service để send out emails, sms, push notification cho toàn e-com system thì nên build thế nào?

  • Usecase: trong e-commerce system bạn cần send out emails: order placed, order cancelled, delivery window changed. Sms & push notifications: order ready to pickup, order on the way, order left at door, etc.

Question: các service khác giao tiếp với notification service như thế nào và service nào chịu trách nhiệm build msg content.

Gợi ý:

  • Phải có 1 thằng message queue,

  • Liệt kê ra những loại events nào sẽ publish messages đến queue. Có những loại event từ client đến, từ system khác bắn vào, từ data change (cái này có thể dùng Redis in memory cached DB để subscribe ra queue),

từ persistent data (ví dụ tới ngày sinh nhật customer...) thì phải có 1 business service riêng chạy theo scheduled để check.

  • Sau đó xác định những loại subscriber service để đẩy notifications đi: mail service, sms service, web socket service...

  • Cứ dùng RabbitMQ build nó như 1 message bus. Ưu điểm RabbitMQ là nhanh, reliable, đủ các yếu tố để scale: như phần out messages, processing, persistence message etc.

Cũng có thể thay thế nó bằng 1 cloud message bus cũng tương đối dễ dàng. Mặc dù scale trên nó cũng khá nhọc nhằn nhưng nhìn chung nó vẫn có thể scale dễ dàng

Ngoài ra cũng có thể apply Sagas pattern cho luồng processing từ order, payment, delivery với Masstransit hay tự làm cũng khá ok với RabbitMQ

Nguồn bài viết:
https://tech.homestudy.edu.vn/thread/build-mot-basic-notification-service-đe-send-out-emails-sms-push-notification-cho-e-com-system/

https://tech.homestudy.edu.vn 15-05-2019

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Kim Long Dinh

13 bài viết.
2 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
4 5
Câu hỏi: 1. Có phải asyn/await dùng ThreadPool (quản lý nhiều separate thread), nếu có thì liệu rằng nhiều thread thực thi cùng lúc như vậy chương...
Kim Long Dinh viết 4 tháng trước
4 5
White
3 0
Đây là một trong loạt bài về kinh nghiệm xin việc, bài trước nói về kinh nghiệm viết resume. Giống như bài trước, bài này cũng chỉ dựa vào những ki...
Kim Long Dinh viết 4 tháng trước
3 0
White
3 0
Một hệ thống cũng giống như thời tiết xấu vậy. Nó không thể đoán trước và cũng không thể tránh khỏi. Và điều quan trọng nhất đối với 1 software eng...
Kim Long Dinh viết 4 tháng trước
3 0
Bài viết liên quan
White
0 4
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết hơn 1 năm trước
0 4
White
2 0
I used Spring boot, Hibernate few times back then at University, I'v started using it again recently. In this (Link), I want to check how Spring J...
Rey viết 8 tháng trước
2 0
White
22 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 3 năm trước
22 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
13 bài viết.
2 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!