Architettura

Grafo delle dipendenze tra i microservizi backend del namespace ditta — depends_on derivato dai frontmatter delle pagine servizio.

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.

Diagramma disponibile lato client.

Servizi per categoria

CategoriaServiziRuolo
Accesso datinode-postgrest-sidecarEsposizione dati tenant via REST/SQL
Import/Exportnode-excel-export
node-excel-import
Import/export verso/da formati office (Excel, CSV)
Output documentinode-print
node-renderer
Rendering template e stampa/conversione documenti
Eventingnode-listen
node-notification
Notifiche multi-canale, propagazione eventi inter-servizio
Identitànode-user-auth
node-user-profiling
Autenticazione, identità utente, ruoli/scope applicativi
Integrazionenode-xmlvalidationValidazione e bridge con sistemi esterni
Orchestrazionenode-orchestrator
node-scheduler
Coordinamento workflow, scheduling, esecuzione task asincrona
Storagenode-storagePersistenza 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-orchestrator coordina i workflow asincroni; node-scheduler lo invoca per i job temporali; i moduli registrati ricevono task via NATS.
  • Pipeline documenti: node-renderer produce HTML/sorgenti dai template, node-print li converte in PDF/etichette, node-storage archivia entrambi.
  • Identità composta: node-user-auth (autenticazione) e node-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).