Backend systems
I backend systems sono il nucleo applicativo che regge carichi di produzione: microservizi, code asincrone, gestione degli stati e strategie di resilienza progettate perché un guasto parziale non diventi un'interruzione del servizio.
Cosa comprende
Architettura a servizi
Separazione dei domini applicativi in servizi con responsabilità e confini chiari, dimensionati sul team che dovrà mantenerli.
Elaborazione asincrona
Code di lavoro, job pianificati e politiche di ritentativo per tutto ciò che non deve bloccare la risposta all'utente.
Persistenza e modello dati
Progettazione dello schema, indici e strategie di migrazione che permettono di far evolvere il modello senza fermare il servizio.
Affidabilità
Health check, isolamento dei guasti e degradazione controllata: un componente che cade riduce le funzioni disponibili, non interrompe il servizio.
Il guasto è un requisito, non un imprevisto
Un backend di produzione va progettato assumendo che le dipendenze falliranno: la rete si degrada, un servizio esterno smette di rispondere, il database rallenta sotto carico. La differenza fra un sistema fragile e uno solido non è l’assenza di guasti, ma cosa succede quando accadono. Timeout espliciti, isolamento delle chiamate esterne e percorsi di ripiego fanno parte dell’architettura iniziale, non della manutenzione.
Sincrono solo quando serve
Ogni operazione che l’utente non deve attendere va spostata fuori dal ciclo di risposta: invii, elaborazioni pesanti, sincronizzazioni con sistemi terzi. Una coda con ritentativi progressivi rende queste operazioni resilienti e, soprattutto, rende il tempo di risposta dell’applicazione indipendente dalla lentezza altrui.
Tecnologie utilizzate
- PHP
- Node.js
- Python
- PostgreSQL
- MySQL
- Redis
- RabbitMQ
- Docker
Domande frequenti
Rifate tutto da zero o lavorate su sistemi esistenti?
Entrambe le cose, ma la riscrittura completa è l'ultima opzione. Nella maggior parte dei casi si isola il componente problematico e lo si sostituisce per gradi, mantenendo il sistema in esercizio.
Come gestite i picchi di carico?
Separando ciò che deve rispondere subito da ciò che può essere accodato, e dimensionando la scalabilità solo sulla parte sincrona. È più economico e più prevedibile che scalare l'intero sistema.
Altri servizi di Engineering
AI orchestration
L'AI orchestration coordina modelli linguistici, strumenti e regole di business in un flusso unico e osservabile: definisce quando invocare un modello, con quale contesto, come validarne l'output e…
Architetture API
Le architetture API di Exenode espongono in modo governato le funzioni di un sistema aziendale: interfacce REST e GraphQL versionate, autenticate e documentate, progettate per reggere l'integrazione di…