Modernizzazione di un ERP complesso

Nel 2019 la Federazione Italiana Pallacanestro (FIP) ha deciso di avviare un ambizioso progetto per consentire a tutti i giocatori di basket, allenatori e arbitri registrati (oltre 500.000 persone) di accedere direttamente al sistema e gestire le proprie informazioni e pratiche burocratiche tramite un portale web dedicato.

Per raggiungere questo obiettivo, è stato deciso di decomporre gradualmente il backend monolitico del sistema legacy in componenti di servizio più piccoli e a basso accoppiamento, esponendo un'API GraphQL, con l'obiettivo principale di ridurre i costi di manutenzione e migliorare la scalabilità.

Tuttavia, tale migrazione verso un'architettura più flessibile e distribuita doveva essere eseguita in modo graduale, senza alcun impatto sulla disponibilità del sistema legacy, migliorando e ampliando contestualmente ogni funzionalità migrata.

Dopo un'analisi preliminare, si è deciso che il primo componente di servizio da implementare sarebbe stato il registro comune di tutte le persone gestite dall'ERP (circa 1,5 milioni di persone), e Livebase è stata selezionata come la tecnologia migliore per creare questo modulo, data la complessità del modello dei dati del registro e il tempo limitato a disposizione.


Un team composto da due analisti ha utilizzato Livebase per modellare e generare un nuovo componente di servizio insieme al suo database e alla sua API GraphQL. Successivamente, un team di tre sviluppatori software ha completato l'integrazione in tre fasi: (1) hanno rifattorizzato il backend dell'ERP legacy affinché invocasse l'API del nuovo componente di servizio per tutte le operazioni di scrittura, anziché accedere direttamente al database dell'ERP; (2) hanno integrato nel componente di servizio il codice necessario per allineare il database dell'ERP; (3) hanno sviluppato un client dedicato per il nuovo componente di servizio.


Le seguenti immagini mostrano l'architettura complessiva del sistema prima e dopo l'introduzione del nuovo componente di servizio generato con Livebase (mostrato con sfondo arancione).

Una volta che il nuovo componente di servizio è stato integrato con il sistema legacy come descritto sopra, gli sviluppatori hanno potuto facilmente e gradualmente disattivare le regole di business implementate nel sistema legacy e replicare la loro logica sia come estensioni del modello del componente (ossia utilizzando il Livebase Designer, senza necessità di scrivere codice) sia come plugin del componente.