Skip to content

Kiến trúc Hệ thống

Danh mục Dịch vụ

Cổng, mã service, Snowflake worker ID và base path được tự sinh từ source - đây là nguồn-sự-thật-duy-nhất (cũng có ở Platform Facts):

14Service
14Schema DB
157Entity (bảng)
0.1.1-5IGNIS
ServicePortBase pathSnowflakeMã service
identity31010/v1/api/identity1SVC-00010-IDENTITY
commerce31020/v1/api/commerce2SVC-00020-COMMERCE
sale31030/v1/api/sale3SVC-00030-SALE
finance31040/v1/api/finance4SVC-00040-FINANCE
inventory31050/v1/api/inventory5SVC-00050-INVENTORY
ledger31060/v1/api/ledger6SVC-00060-LEDGER
pricing31070/v1/api/pricing7SVC-00070-PRICING
payment31080/v1/api/payment8SVC-00080-PAYMENT
signal31090/v1/api/signal9SVC-00090-SIGNAL
outreach31110/v1/api/outreach10SVC-00110-OUTREACH
helpdesk31032/v1/api/helpdesk0SVC-00120-HELPDESK
taxation31130/v1/api/taxation13SVC-00130-TAXATION
licensing31120/v1/api/licensing11SVC-00140-LICENSING
invoice1190/v1/api-SVC-00150-INVOICE

Tự sinh từ packages/* (env) + ServiceCodes + cây schema lúc build - không gõ tay.

Lớp cơ sở ứng dụng - identity là trust root duy nhất (phát JWKS); mọi service khác verify dựa trên nó:

Lớp cơ sởDịch vụ
IssuerApplicationidentity
VerifierApplicationcommerce, sale, finance, inventory, ledger, pricing, payment, signal, outreach, helpdesk, taxation, licensing, invoice
hạ tầng (Traefik + Astro)gateway

Payment hỗ trợ triển khai theo chế độ: full (mặc định, tất cả trong một), api (chỉ REST, Snowflake 8), worker (chỉ BullMQ, Snowflake 91, 92, ...).

Sơ đồ Mạng

Phân cấp Ứng dụng

BaseApplication (@venizia/ignis)
  └── BaseApplication (@nx/core - CORS, Swagger, health check)
        ├── IssuerApplication (JWKS issuer - signs JWTs, serves /jw-certs)
        │     └── identity
        └── VerifierApplication (JWKS verifier - fetches remote /jw-certs)
              └── commerce, sale, finance, inventory, pricing, payment,
                  signal, ledger, outreach, licensing, taxation,
                  helpdesk, invoice

Tất cả dịch vụ xác thực JWT bằng cách lấy endpoint JWKS /jw-certs của dịch vụ identity. Chỉ có identity là dịch vụ ký token.

Chuỗi Phụ thuộc Package

Thứ tự build (từ Makefile): third-parties trước, sau đó là core, rồi đến tất cả các package theo thứ tự phụ thuộc. Xem Hệ thống Build để có tham khảo target đầy đủ.

Ánh xạ Schema Cơ sở Dữ liệu

Tất cả schema được định nghĩa trong @nx/core và dùng chung giữa các dịch vụ thông qua PostgresCoreDataSource. Mỗi dịch vụ kết nối vào cùng một cơ sở dữ liệu PostgreSQL nhưng hoạt động trên các schema khác nhau.

SchemaBảngDịch vụ chínhMục đích
helpdesk30helpdeskTicket, SLA, cơ sở tri thức, khảo sát, agent, thông báo
public26identity, commerceNgười dùng, vai trò, quyền, merchant, organizer, sản phẩm, danh mục, biến thể, thiết bị, kênh bán hàng, cấu hình
inventory17inventoryTồn kho, đơn mua, mục mua, biến động kho, nguyên vật liệu, BOM
sale21saleĐơn hàng, mục đơn hàng, check, ticket bếp, đặt chỗ, ca làm việc
invoice9invoiceHóa đơn điện tử, đánh số, chữ ký, bản ghi nhà cung cấp
pricing9pricingGiá vé, quy tắc giá, chi phí, thuế, đánh giá giá
identity8identityThông tin xác thực, định danh, hồ sơ, xác thực email
ledger8ledgerTác vụ ledger, tài liệu được tạo, nguồn dữ liệu
finance6financeVí, giao dịch, danh mục, voucher
tax6taxationNhóm thuế, mẫu thuế, cấp phát thuế sản phẩm
licensing5licensingChính sách, tính năng chính sách, license, kích hoạt, sự kiện license
allocation4commerceSắp chỗ sự kiện, sơ đồ địa điểm
outreach2outreachYêu cầu, người đăng ký
payment0paymentPaymentIntegration nằm trong schema finance

Tổng cộng: 151 bảng trên 14 schema.

Xem Hướng dẫn Cơ sở Dữ liệu để biết quy trình migration và các pattern ORM.

Ma trận Component

Package nào đăng ký component hạ tầng nào:

PackageKafka ProducerKafka ConsumerWebSocketCache RedisMail / SMS
core----
identity---Có (SMS + Mail)
commerce---
sale---
finance---
inventory--
pricing----
ledger---
taxation----
search-- (CDC)---
payment----
signal--Có (mã hóa E2E)--
outreach----
licensing----

Xem Kiến trúc Sự kiện để có tham khảo đầy đủ về topic và queue.

Ứng dụng Frontend

AppFrameworkMục đíchCổng
@nx-app/clientReact 19 + Vite 7 + shadcn/uiBảng điều khiển admin3001
@nx-app/boReact 19 + Vite 7 + shadcn/uiBack office (quản lý merchant)3000
@nx-app/sale-rendererReact 19 + Tauri 2 WebViewUI POS desktop-
@nx-app/sale-mainRust + Tauri 2Backend POS desktop (SQLite, hardware plugins)-
@nx-app/overtureAstroTrang marketing / landing4321
@nx-app/admin-ui-kitReact + Radix UIThư viện component dùng chung (43 shadcn + custom)-
@nx-app/coreTypeScriptHằng số, hooks, locales, tiện ích dùng chung-

Tích hợp Bên thứ ba

PackageMục đíchNhà cung cấp
@nx/mq-payThanh toán đa nhà cung cấp (QR, Phone POS, Smart POS)VNPAY
@nx/mq-smsCổng SMS đa nhà cung cấpVNPAY
@nx/iiapiDịch vụ hóa đơn điện tử Việt NamVNPAY viiAPI
@nx/t-vanTruyền dữ liệu cho Cơ quan Thuế Việt NamT-VAN

Trang Liên quan

TrangMô tả
Bắt đầuHướng dẫn cài đặt cục bộ
Hệ thống BuildTarget Makefile, đồ thị phụ thuộc
Kiến trúc Sự kiệnTopic Kafka, queue, WebSocket, CDC
Hướng dẫn Cơ sở Dữ liệuChi tiết schema, migration, pattern ORM
IGNIS PatternsPhân cấp ứng dụng, DI, controller factory
Tổng quan PackagesMục lục tài liệu từng package

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