Skip to content

Tích hợp và sự kiện ​

Quy tắc ​

MãYêu cầu
FR-INT-1Mỗi dịch vụ có CSDL riêng. Không dịch vụ nào đọc CSDL của dịch vụ khác.
FR-INT-2Dữ liệu của dịch vụ khác được giữ ở dạng bản sao, dựng từ sự kiện trên Valkey Streams. Sự kiện mang trạng thái hiện tại đầy đủ của bản ghi ({id, occurredAt, data}), không mang phần thay đổi.
FR-INT-3Bên phát và bên nhận tự khai báo cấu trúc sự kiện của mình; không dùng gói dùng chung.
FR-INT-4Bên nhận phải bỏ qua sự kiện cũ hơn bản đã có.
FR-INT-5Khi bản sao chưa có dòng cần dùng (sự kiện đến chậm), dịch vụ hỏi trực tiếp API của dịch vụ sở hữu.
FR-INT-6Gọi giữa dịch vụ dùng token client credentials của dịch vụ gọi kèm header nội bộ; bên nhận yêu cầu vai trò internal_service và quyền của API.
FR-INT-7Mỗi dịch vụ có API /sync phát lại toàn bộ bảng cho Đồng bộ.

Luồng sự kiện ​

LuồngPhát khiBên nhận
vendor-service:vendorsThêm, sửa, xoá đối tácphân bổ, kế hoạch sơ chế, kế hoạch thu mua, phiếu, báo cáo, cân xe
vendor-service:cooperativesThêm, sửa, xoá HTXphân bổ, kế hoạch thu mua, phiếu
vendor-service:vendor_assignmentsĐổi phân côngkế hoạch thu mua, phiếu
vendor-service:trucksĐổi xe tảiphân bổ, phiếu
vendor-service:truck_vendor_linksGắn, gỡ liên kết xe với NCC (kể cả gỡ do xoá xe, xoá đối tác)chưa có
product-service:productsThêm, sửa, xoá sản phẩm, đổi loại gia công mặc địnhphân bổ, kế hoạch thu mua, phiếu, báo cáo, cân xe, tra cứu cân
product-service:product_categoriesThêm, sửa, xoá danh mục (kèm phát lại các sản phẩm thuộc danh mục)cân xe
user-service:usersĐổi người dùngphân bổ, kế hoạch sơ chế, kế hoạch thu mua, phiếu, đối tác, tra cứu cân
employee-service:employeesĐổi nhân côngtra cứu cân
purchase-plan-service:purchase_plansTạo, lưu, xoá kế hoạch, gỡ mức giáphân bổ (mở, đóng ngày), phiếu, báo cáo
purchase-plan-service:price_sheetsLưu bảng giáphiếu (Dữ liệu TC)
receiving-ticket-service:coconut_receiving_ticketsMọi thay đổi phiếu mua dừaphân bổ, báo cáo
receiving-ticket-service:meat_receiving_ticketsMọi thay đổi phiếu mua cơm dừabáo cáo
processing-allocation-service:processing_allocationsMọi thay đổi thẻ xephiếu (Tổng phân phối, trạng thái, số lô), báo cáo
processing-allocation-service:processing_allocation_receiptsLưu nhận vềbáo cáo
truck-scale-service:weighing-recordsNhận, xử lý lại bản ghi cân xephiếu, phân bổ, đối tác (tự đăng ký xe), tra cứu cân
attachment-service:attachmentsTệp tải lên xong, bị xoáphiếu
sync-service:runsKết quả một lần đồng bộđồng bộ

Bên nhận: phân bổ processing-allocation-service, kế hoạch sơ chế processing-plan-service, kế hoạch thu mua purchase-plan-service, phiếu receiving-ticket-service, báo cáo report-service, đối tác vendor-service, cân xe truck-scale-service, tra cứu cân weighing-record-service (bản ghi cân xe và cân bàn), đồng bộ sync-service.

Đảm bảo phát ​

MãYêu cầu
FR-INT-8Mọi dịch vụ phát sự kiện phải ghi outbox trong cùng giao dịch với thay đổi; worker phát mỗi 200 ms, lô 100, ít nhất một lần. Không sự kiện nào được phát sau khi commit.

Ngoài hệ thống ​

Hệ thốngGiao tiếp
KeycloakOIDC cho người dùng; Admin API chỉ từ user-service; JWKS cho xác thực token
MSSQL phần mềm cân xeChỉ đọc bảng Phieucan, qua tracker
Lưu trữ S3 (MinIO, DigitalOcean Spaces)URL ký sẵn để tải lên (hết hạn 600 giây) và xem (300 giây)
TelegramNhận cảnh báo vận hành từ Alertmanager