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.
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
.NET 9, ASP.NET Core, EF Core 9, Dapper, MediatR, FluentValidation
React 19/18, TypeScript, MUI v6, TanStack Query, SignalR, TailwindCSS
PostgreSQL 16, DbUp migrations, Partitioning, Full-text search (trigram)
OpenIddict, OpenID Connect / OAuth 2.0 (PKCE + Client Credentials + Custom Grant)
RabbitMQ, MassTransit, Outbox Pattern, Dead Letter Queue
OpenTelemetry, Prometheus, Grafana (Loki + Tempo), Serilog
AES-256-GCM, Row-Level Security, API key rotation, Rate limiting, IP whitelist