Skip to content

Integration

@nx/search tích hợp bằng cách được nhúng, không gọi qua mạng. Host đăng ký các component của nó và dùng SearchService + SearchableControllerMixin in-process.

1. Service liên quan

ServiceHướngBề mặtContractAuthChế độ lỗi
commerce (host)Trong tiến trình - đăng ký 4 component, gọi SearchService, áp dụng SearchableControllerMixinLibrary APIKế thừa (host JWT/Basic)Exception trong tiến trình
@nx/coreConfigurationRepository, CdcTables, EnvironmentKeys, SystemConfigurationsLibrary-Phụ thuộc lúc biên dịch

Commerce áp dụng mixin lên các controller organizer / merchant / category / device / sale-channel / product / product-variant của nó; mỗi controller ghi đè resolveSearchScope() để chèn một scope where theo merchant/tenant.

2. Hệ thống bên ngoài

Hệ thốngHướngBề mặtAuthChế độ lỗi
TypesenseHTTP (typesense client) - search, import, CRUD collection, kiểm tra sức khoẻAPI key (APP_ENV_TYPESENSE_API_KEY)Thăm dò sức khoẻ → circuit breaker tạm dừng CDC; lỗi search được phân loại + thử lại
Kafka + DebeziumTiêu thụ CDC topics (@platformatic/kafka, Avro qua avsc)SASL tuỳ chọn (APP_ENV_KAFKA_SASL_*)DLQ cho message lỗi; offset không commit khi thất bại

3. Luồng xuyên service quan trọng

3.1 Consumer gắn search theo từng entity (lúc build)

BướcChi tiết
2Nodes được phân tích từ CSV protocol:host:port; mặc định http:localhost:8108
6embed.from chỉ được gắn khi có config embedding trong DB + collection có embeddingField/embeddingFields
7Collection còn thiếu sẽ được tạo; collection đã sai lệch được ghi log (migration thủ công)

3.2 Tìm kiếm theo scope tenant lúc request

BướcChi tiết
2Bản ghi đè của host trả về một object where; mixin gộp nó với filter của caller bằng and
3Scope rỗng (null) nghĩa là tìm kiếm mở (không giới hạn tenant)

4. Độ ổn định của Contract

Bề mặtĐộ ổn địnhĐánh phiên bản
Thứ tự đăng ký componentổn địnhLibrary semver (@nx/search)
SearchableControllerMixin(Base, options)ổn địnhLibrary semver
ISearchParams / ISearchResponseổn địnhLibrary types
GET /search/{collectionName} (controller chung)ổn địnhHost URL /v1/
Tên CDC topic (nx.seller.{schema}.{table})gắn chặt với config Debezium connectorDo connector sở hữu
Schema Typesense collectiontiến hoá dần (chỉ thêm, qua script backfill)Migration thủ công khi sai lệch

5. Trang liên quan

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