Architettura

L'architettura del CMS è di tipo monolitico, mentre quella che implementa i servizi digitali è organizzata a microservizi, sebbene l'originale monolite in symfony abbia ancora rilevanti responsabilità

Architettura generale

In questo e nei diagrammi che seguono è stato seguito il Modello C4 per la rappresentazione dei diagrammi architetturali.

Sito istituazionale

L'architettura del CMS è una classica architettura monolitica con un core in PHP e una persistenza principale (PostgreSQL) a cui si affiancano un motore di ricerca (Solr) e un layer di cache http (Varnish)

Container diagram

Servizi digitali e area personale

L'architettura ha subito varie trasformazioni nel tempo e non può dirsi ancora definitiva, ma alcune caratteristiche sono ormai consolidate:

  • la decomposizione in microservizi con storage indipendenti e API ReST

  • il sistema di scambio di messaggi basato su Kafka per rendere asincrone le interazioni tra i microservizi

Vista dettagliata di Services Core

Questa parte del sistema ha la maggior parte delle responsabilità relative alle pratiche al sistema di appuntamenti. E' costitutito da un core in symfony e da alcuni servizi al contorno che svolgono funzioni specifiche.

  • Kafka API, è una istanza del server open-source Vector fornisce una interfaccia HTTP per Kafka

  • Gotenberg è un tool opensource che la piattaforma utilizza per la creazione dei PDF

  • Form Server è la nostra implementazione del server open-source Form.io, di cui usiamo nel core le librerie Javascript per il rendering delle form.

  • Form Builder è una Single-Page-App in angular che include la libreria di Form.io per la creazione delle form. E' un servizio dedicato agli amministratori della piattaforma per la gestione di una libreria di componenti condivisi e riusabili dagli Enti nella creazione dei loro moduli: anagrafiche, definizione di immobili, autoveicoli etc...

Vista di dettaglio del sotto-sistema dei Pagamenti

TBD

Vista di dettaglio del sotto-sistema dei Documenti

TBD

Vista di dettaglio del sotto-sistema degli Analytics

Last updated

Was this helpful?