Rivile ERP — bendra architektūros schema (mokymams)

Rivile ERP — bendra architektūros schema (mokymams)

Šiame dokumente sutraukta visa platformos architektūra viename paveiksle: klientai, frontend, įėjimas į debesį, sauga, REST ir GraphQL vartai, Java Spring mikroservisai, pranešimų sluoksnis, įvykių / duomenų sluoksnis ir duomenų bazės. Tinka atstovų mokymams ir klientui paaiškinti, kur „sėdi“ ataskaitos, API, foninės užduotys ir integracijos.

Originali diagrama:

Rivile ERP — bendra architektūros schema

Susiję dokumentai

Dokumentas Ką ten rasti
rivile-erp-infrastruktura-ribos-greitaveika.html Kodėl yra timeout, kiekio ribos, eilės
rivile-erp-graphql-overview.html Federuotas GraphQL, sesija, klaidų tipai
rivile-erp-data-export-async.html Asinchroninis eksportas (Artemis, užduotys, failai)
rivile-erp-duomenu-istraukimas-keliai-ribos.html Keturi keliai pagal duomenų kiekį ir trukmę

1. Sluoksniai (santrauka)

Sluoksnis Esminiai elementai
Klientas / išorė Vartotojai, trečiųjų šalių programos (pvz. Amazon, eBay, Shopify) — į sistemą per API vartus
Frontend (React) POS pardavimų frontend (mobilus + web), pagrindinis frontend (mobilus + web), Dev Studio, Reporting Designer; bendri komponentai, i18n/l10n, stiliai
Infrastruktūra Kubernetes, apkrovos balansavimas: REST ir WebSocket įėjimas (Java / NodeJS kontekste schemoje)
Sauga ir vartai Autentifikacija (JWT arba sesijos žetonai), autorizacija (Access / Session / API tokenai), REST API Gateway, Federated GraphQL Gateway su vaidmenimis ir teisėmis (dalis saugos logikos perkelta į GQL vartus)
Backend (Java Spring) Salesgate (POS), pagrindiniai servisai (verslo logika moduliais: apskaita, pirkimai, pardavimai, master data ir kt.), pritaikymų karkasas, sistemos paslaugos (failai, pranešimai, organizacijos, aptikimas), ataskaitų servisai (šaltiniai, šablonai, teisės, grafikai), Infinispan podėlis, pranešimų magistralė (JMS, atmintyje, AMQP)
Pranešimai ir įrenginiai Apache Artemis klasteris, ryšys su fiskaliniais blokais ir svarstyklėmis (HW communicator)
Įvykiai / būsenos Axon Server (įvykių modeliavimas / CQRS kontekste schemoje)
Duomenys Klientų DB (daugianuomė), sistemos DB, ataskaitų duomenų šaltiniai (PostgreSQL / MSSQL kontekste)

2. Pagrindiniai srautai (kaip skaityti schemą)

  1. Vartotojo užklausa — React aplikacija → Kubernetes balansuotojas → autentifikacija → REST arba GraphQL vartai → atitinkamas Spring servisas.
  2. Vidinis bendravimas — servisai naudoja pranešimų magistralę ir Infinispan podėlį; ilgesnės ar foninės operacijos gali eiti per Artemis (žr. asinchroninį eksportą).
  3. POS ir įranga — Salesgate → Artemis → HW communicator → fiskaliniai įrenginiai / svarstyklės.
  4. Duomenų saugojimas — rašymas / skaitymas į daugianuomės klientų DB ir sistemos DB; Axon — įvykių sluoksnis tarp logikos ir persistencijos.
  5. AtaskaitosReporting Designer frontend'e → Reporting Services (šaltiniai, šablonai, teisės, grafikai) → duomenys iš ataskaitoms skirtų šaltinių.

3. Ką verta pabrėžti mokymuose

  • Du įėjimai į API: klasikinis REST ir federuotas GraphQL — skirtinga naudojimo paskirtis (pvz. integracijos vs turtingas UI užklausas).
  • Saugos evoliucija: schemoje pažymėta, kad dalis vaidmenų ir teisių logikos perkelta į GraphQL vartą; senesnis Security blokas servise gali būti žymimas kaip pereinamasis / deprecated.
  • Ataskaitos ir eksportas nėra „vienas mygtukas be architektūros“: jie remiasi Reporting servisais, duomenų šaltiniais ir, didelėms apimtims, asinchroniniu keliu su eilėmis ir failais.
  • Daugianuomė — logiškai atskiria klientų duomenis; tai svarbu aiškinant izoliaciją, atsarginius kopijavimus ir našumo planavimą.

4. Santrauka vienai skaidrei

Klausimas Atsakymo kryptis
Kur eina naršyklės užklausa? K8s LB → auth → REST arba GQL vartai → Spring servisai
Kur GraphQL? Federuotas GQL Gateway (su RBAC sluoksniu)
Kur foninės užduotys / eilė? Artemis (+ ryšys su Data Mobility / eksportu pagal kitus doc’us)
Kur ataskaitos? Reporting Designer + Reporting Services + ataskaitų DB šaltiniai
Kur saugomi verslo duomenys? Klientų DB (multitenant), šalia sistemos DB

Jei produkto komanda atnaujins technologijų ar komponentų pavadinimus, atnaujinkite šį tekstą ir, jei reikia, pakeiskite paveikslą docs/assets/rivile-erp-architektura-bendra.png.