Architettura
Architettura del namespace ditta
Vista d'insieme delle dipendenze applicative tra i 13 microservizi backend deployati nel namespace ditta. Il grafo è generato a partire dai campi depends_on e consumed_by dichiarati nei frontmatter delle pagine servizio.
Le dipendenze infrastrutturali (PostgreSQL, NATS, Redis, MinIO) non sono rappresentate: tutti i servizi le usano e il grafo perderebbe leggibilità. Vedi la sezione Architettura della singola pagina servizio per i dettagli.
Grafo delle dipendenze
Frecce orientate da chi chiama verso chi viene chiamato. I colori raggruppano i servizi per categoria; i nodi tratteggiati rappresentano consumer esterni al backend (es. frontend Vue) o componenti speciali.
Servizi per categoria
| Categoria | Servizi | Ruolo |
|---|---|---|
| Accesso dati | node-postgrest-sidecar | Esposizione dati tenant via REST/SQL |
| Import/Export | node-excel-exportnode-excel-import | Import/export verso/da formati office (Excel, CSV) |
| Output documenti | node-printnode-renderer | Rendering template e stampa/conversione documenti |
| Eventing | node-listennode-notification | Notifiche multi-canale, propagazione eventi inter-servizio |
| Identità | node-user-authnode-user-profiling | Autenticazione, identità utente, ruoli/scope applicativi |
| Integrazione | node-xmlvalidation | Validazione e bridge con sistemi esterni |
| Orchestrazione | node-orchestratornode-scheduler | Coordinamento workflow, scheduling, esecuzione task asincrona |
| Storage | node-storage | Persistenza file e BLOB con accesso temporizzato |
Matrice dipendenze
Tabella riepilogativa per consultazione rapida. La colonna Dipende da elenca i servizi chiamati da quello sulla riga; Consumato da elenca chi lo chiama.
Come leggere il grafo
- Hub di autenticazione:
node-user-authè il punto di ingresso per tutto il traffico HTTP autenticato (sub-request nginx). Quasi tutti i servizi dipendono da lui. - Hub di orchestrazione:
node-orchestratorcoordina i workflow asincroni;node-schedulerlo invoca per i job temporali; i moduli registrati ricevono task via NATS. - Pipeline documenti:
node-rendererproduce HTML/sorgenti dai template,node-printli converte in PDF/etichette,node-storagearchivia entrambi. - Identità composta:
node-user-auth(autenticazione) enode-user-profiling(autorizzazione/ruoli) sono complementari — vedi le rispettive pagine per la divisione delle responsabilità. - Accesso dati:
node-postgrest-sidecarè il bus unico verso PostgreSQL per i microservizi che non parlano SQL direttamente (frontend Vue, orchestratore, renderer).