Skip to content

Cross-Package Messaging (Kafka / CDC)

Trang cần viết lại sâu hơn

Trang này trước đây ghi một hệ thống queue BullMQ packages/core/src/common/queues/ (CommerceQueueDefinitions, FinanceQueueDefinitions, tên queue phân vùng, v.v.). Hệ thống đó không còn tồn tại. Đường nối xuyên package của core hiện là Kafka (sự kiện domain) và Debezium CDC. Nội dung bên dưới là một stub đã sửa; tham chiếu đầy đủ theo từng topic vẫn còn phải viết. Nguồn sự thật: packages/core/AGENTS.mdsrc/common/kafka/.

Messaging nằm ở đâu

Mối quan tâmSourceExports
Topic sự kiện domainsrc/common/kafka/topics.tsKafkaTopics
Topic CDCsrc/common/kafka/topics.tsCDCKafkaTopics
Kiểu messagesrc/common/kafka/types.tsKiểu message Kafka dùng chung
Hằng bảng CDCsrc/common/cdc/tables.tsCdcTables
Định nghĩa sự kiệnsrc/common/events/commerce-events.ts, ledger-events.ts, payment-events.ts, websocket-events.ts
Event bussrc/helpers/event-bus/IEventBus + adapter Redis Pub/Sub

KafkaTopics

Hằng tên topic sự kiện domain cộng một helper build({ paths }) prefix tên topic với nx.seller. Ví dụ sự kiện domain: PAYMENT_SUCCESS, INVENTORY_ISSUED_FOR_SALE, LEDGER_GENERATE, MATERIAL_STOCK_CHANGED.

typescript
import { KafkaTopics } from '@nx/core';

const topic = KafkaTopics.build({ paths: [KafkaTopics.PAYMENT_SUCCESS] });
// => prefix với "nx.seller"

CDCKafkaTopics

Tên topic change-data-capture Debezium, dựng từ CdcTables (vd MERCHANT, PRODUCT, SALE_ORDER). Service subscribe topic CDC để phản ứng với thay đổi cấp hàng trong bảng của domain khác.

Event Bus

Cho pub/sub in-process (không phải Kafka), @nx/core expose interface IEventBus với một adapter Redis Pub/Sub. Xem Event Bus.

Tài liệu liên quan

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.