Nền tảng công nghệ vững chắc

PetroPoint được xây dựng trên Clean Architecture, .NET 9, PostgreSQL và RabbitMQ — thiết kế cho hiệu năng cao, bảo mật tối đa và khả năng mở rộng không giới hạn.

Tổng quan kiến trúc

Hệ sinh thái PetroPoint gồm 3 hệ thống độc lập, kết nối qua giao thức chuẩn: xác thực tập trung qua OpenID Connect, truyền tin bất đồng bộ qua RabbitMQ và chia sẻ dữ liệu qua API REST. Mỗi hệ thống có database riêng, triển khai độc lập và có thể mở rộng riêng biệt.

AUTH & IDENTITYBUSINESS SERVICESPRESENTATIONDATApp-identityOpenIddict / OAuth 2.0Database-per-tenantSSO · MFA · RBACpp-portal22+ modulesPOS · Inventory · FinanceHR · Operations · AdminSignalR real-time dashboardpp-trust-invoicesE-invoice lifecycle (9 states)4 providers · DLQ · RLSOperator Console · AuditCQT reconciliationpp-landing-webNext.js Static · i18n vi/enPostgreSQL — Central DB (Identity) · DB-per-tenant (Portal) · RLS (Trust Invoices)JWTJWTRabbitMQ

Nguyên tắc kiến trúc

Clean Architecture

Phân tách rõ ràng giữa domain, application, infrastructure và presentation — mỗi tầng chỉ phụ thuộc vào tầng trong.

CQRS

Tách biệt Command (ghi) và Query (đọc) để tối ưu hiệu năng và bảo mật ở từng thao tác.

Database-per-tenant

Mỗi tenant có database riêng, đảm bảo cô lập dữ liệu tuyệt đối. Áp dụng cho Portal và Identity.

Row-Level Security

Trust Invoices dùng RLS của PostgreSQL để phân tách dữ liệu tenant trong cùng một database.

Outbox Pattern

Đảm bảo tin nhắn RabbitMQ không mất ngay cả khi hệ thống gặp sự cố trước khi gửi.

API First

Mọi chức năng đều có REST API, hỗ trợ OAuth 2.0 cho cả SPA và M2M communication.

Công nghệ sử dụng

Backend

.NET 9, ASP.NET Core, EF Core 9, Dapper, MediatR, FluentValidation

Frontend

React 19/18, TypeScript, MUI v6, TanStack Query, SignalR, TailwindCSS

Database

PostgreSQL 16, DbUp migrations, Partitioning, Full-text search (trigram)

Auth

OpenIddict, OpenID Connect / OAuth 2.0 (PKCE + Client Credentials + Custom Grant)

Messaging

RabbitMQ, MassTransit, Outbox Pattern, Dead Letter Queue

Observability

OpenTelemetry, Prometheus, Grafana (Loki + Tempo), Serilog

Security

AES-256-GCM, Row-Level Security, API key rotation, Rate limiting, IP whitelist