Sari la continut
Produs SaaS Enterprise

Platformă ERP Multi-Tenant

Un ERP microservicii construit de la bun început pentru izolarea chiriașilor, implementare independentă și o scalare inginerească onestă.

An 2025
Durata 14 luni
Echipa 4 ingineri
Status Live · primii clienți

O privire asupra produsului.

Am pornit să construim un ERP modern care să nu oblige întreprinderile mici și mijlocii să aleagă între „monolit sau nimic". Sistemele gata făcute precum SAP sau Odoo fie veneau cu costuri de licențiere enterprise, fie necesitau luni de personalizare pentru a se mula pe fluxurile reale de lucru.

Teza noastră a fost simplă: să împărțim problema în servicii mici, independente la deploy, din prima zi — chiar dacă orice instinct al unei echipe mici spune să livrezi un monolit modular și să extragi mai târziu. La paisprezece luni distanță, acest angajament a modelat fiecare decizie tehnică și operațională luată de atunci.

Provocare

Companiile de retail, servicii și distribuție au toate nevoie de CRM, modul contabil și sistem de inventar — dar regulile, câmpurile și fluxurile diferă considerabil. Un monolit tradițional gestionează această divergență adăugând flaguri de configurare până când codebase-ul devine un muzeu al cazurilor speciale.

Aveam constrângeri mai dure: izolare completă a datelor pe chiriaș (fără scheme partajate), cadență de deploy independentă pe modul (CRM livrează fără să blocheze Inventarul), consistență sub-secundă între servicii și o interfață coerentă unică în ciuda unui backend fragmentat — totul rulând pe o infrastructură pe care un SMB și-o permite.

Abordare

Am ales polyrepo în locul monorepo pentru independența deploy-urilor. 41 de repository-uri în total: 16 servicii backend, 10 microfrontend-uri Vue 3, o bibliotecă UI comună, un SDK de autentificare JWT și module de infrastructură. Fiecare serviciu backend este o aplicație Laravel focalizată, cu propria schemă PostgreSQL.

Serviciile comunică exclusiv prin NATS JetStream — fără apeluri HTTP directe între servicii. Cererile sincrone din browser lovesc un API gateway Kong care rutează spre serviciul potrivit și gestionează validarea JWT. Interfața este asamblată la runtime folosind Rsbuild Module Federation, astfel încât CRM și Inventarul pot livra funcționalități noi independent, fără a reconstrui shell-ul.

Izolarea chiriașilor este impusă la nivel de bază de date prin row-level security PostgreSQL, provizionată per chiriaș de CloudNativePG. Un tenant ID călătorește în header-ul fiecărui mesaj NATS. Dacă un serviciu uită să facă scope la un query, RLS îl prinde — nu vigilența umană.

Ne-am angajat la microservicii din prima zi — chiar dacă orice instinct al unei echipe mici spune să livrezi un monolit și să extragi mai târziu.

Capabilitati cheie livrate.

  • 16 servicii Laravel focalizate, acoperind CRM, Contabilitate, Inventar, HR, Workflow, Ticketing, Raportare și altele
  • Scheme PostgreSQL izolate per chiriaș, cu row-level security impus la nivel de bază de date
  • Bus de evenimente NATS JetStream, cu livrare garantată între servicii
  • 10 microfrontend-uri Vue 3 federate la runtime — livrează independent
  • Deployment-uri Kubernetes bazate pe Helm, pe clustere RKE2
  • SDK JWT comun, folosit de fiecare serviciu și microfrontend
  • Stack complet de observabilitate: metrici Prometheus, log-uri Loki, trace-uri Tempo
  • Provisionare automată a chiriașilor, cu bază de date dedicată per client

Rezultate reale, masurate in productie.

Deploy Time
2–3 min
De la git push la producție, per serviciu
p95 Latency
< 180ms
Sub teste de încărcare realistă
Tenant Leaks
Zero
6 luni de pen-testing, fără acces între chiriași
Scale
41 repo-uri
Graniţe clare, responsabilitate clară per serviciu

Platforma suportă un număr nelimitat de chiriași, cu zero contaminare încrucișată. Fiecare serviciu se deployează independent prin chart-uri Helm pe Kubernetes RKE2, cu observabilitate completă prin Prometheus, Grafana, Loki și Tempo. Timp mediu de deploy: sub 3 minute pe serviciu.

Tehnologii folosite, grupate dupa rol.

Backend
Laravel 12 PostgreSQL NATS JetStream Valkey CloudNativePG
Frontend
Vue 3 TypeScript Rsbuild Module Federation
Infrastructura si observabilitate
Kubernetes (RKE2) Helm Prometheus Grafana Loki Tempo