Le reti elettriche europee stanno affrontando una crisi silenziosa: la domanda di energia cresce rapidamente, spinta dall'adozione di veicoli elettrici, pompe di calore ed elettrificazione industriale, mentre le fonti rinnovabili immettono energia in modi per cui la rete non è stata progettata. Il risultato è un sistema sotto pressione da entrambi i lati. Adeguare l'infrastruttura costerebbe miliardi. L'alternativa più intelligente è software che rende l'infrastruttura esistente più flessibile, ed è esattamente quello che fa SPARklE.
SPARklE è una piattaforma cloud-native a microservizi (Java/Spring Boot per i servizi core, Python per algoritmi di forecasting e ottimizzazione) che gestisce Comunità Energetiche Rinnovabili (CER) e partecipa ai mercati della flessibilità energetica per conto dei Distribution System Operator. In questo talk partiremo dal problema di dominio che ha guidato le nostre scelte architetturali, per poi entrare nel dettaglio delle decisioni tecniche che hanno reso il sistema funzionante in produzione.
Approfondiremo tre aree:
- multitenancy: perché abbiamo scartato l'approccio con clausole WHERE e implementato PostgreSQL Row-Level Security con propagazione di variabili di sessione attraverso un connection pool — inclusi i problemi sottili che abbiamo incontrato lungo la strada.
- dati time-series su larga scala: come le hypertable e le retention policy di TimescaleDB hanno gestito l'ingestione ad alta frequenza da smart meter e sistemi di accumulo su più comunità.
- ottimizzazioni delle immagini docker dei microservizi SpringBoot: come ridurre dimensione e startup time con jdeps, jlink e AOT Cache
- GitOps in un progetto che coinvolge più aziende: come FluxCD su Kubernetes ha portato ordine nei deployment quando il sistema integra moduli e componenti di proprietà di partner esterni.
Un talk sui trade-off reali di un team piccolo che costruisce infrastruttura che impatta direttamente il flusso di energia rinnovabile nella rete. Include live demo.
Video of presentation at JUG Milano - 2026/06/18 : https://www.youtube.com/watch?v=sNWVQHHGc6w&t=316s