Vai al contenuto

AI Multisite: architettura di un hub editoriale integrato con WordPress

AI Multisite come piattaforma: l’architettura che ha reso possibile il pivot

AI Multisite è la piattaforma editoriale Romiltec che collega gestione dei contenuti, lavorazioni AI e pubblicazione su più siti. L’integrazione con WordPress permette di intervenire sul processo senza imporre alla redazione di abbandonare ogni strumento già in uso.

Per spiegare l’architettura parto dalle responsabilità: chi può lavorare su una testata, come viene preparato un contenuto, quale versione arriva al CMS e come si riconosce un’operazione fallita. L’elenco delle tecnologie diventa utile quando chiarisce questi passaggi.

Un backend applicativo e lavorazioni con tempi diversi

La scheda tecnica del prodotto descrive un backend Laravel, un’interfaccia Vue e servizi Python per elaborazioni specifiche. Database, cache e code sostengono il lavoro applicativo; le integrazioni collegano CMS e provider esterni.

Nel backend, Action, DTO e Policy separano logica operativa, dati in ingresso e autorizzazioni. Sono confini che aiutano a leggere una modifica: quale operazione cambia, quale input richiede e chi può eseguirla.

Le Policy Laravel organizzano i controlli sulle risorse. L’autorizzazione deve precedere l’azione con effetti: una validazione dell’input o un controllo nell’interfaccia non la sostituisce.

L’isolamento attraversa più componenti

Un utente può avere accesso a una testata e non a un’altra dello stesso ambiente. La piattaforma deve applicare questa distinzione su contenuti, configurazioni e operazioni, anche quando l’utente costruisce direttamente una richiesta API.

Un filtro sulle query può aiutare, ma non copre automaticamente cache, indici di ricerca, esportazioni e processi in coda. Se manca il contesto necessario, l’operazione deve fermarsi; togliere il filtro in quel caso espone un perimetro troppo ampio.

Verificherei casi con due account e due siti, includendo risorse riferite indirettamente: autore, immagine e configurazione del provider. Un identificatore valido non dimostra che l’utente sia autorizzato a usarlo in quel contesto.

La generazione AI produce una lavorazione editoriale

Il prodotto distingue indicazioni della testata, adattamento linguistico, tipo di contenuto e profilo stilistico dell’autore. Comporre questi elementi serve a rendere la richiesta più specifica e discutibile dalla redazione.

Un testo coerente con il tono richiesto può comunque contenere errori. Per questo la revisione editoriale deve poter vedere fonti, risultato e modifiche. Il punteggio di stile non diventa una verifica dei fatti; ho approfondito la distinzione nell’articolo sulla stilometria computazionale.

L’astrazione tra provider facilita l’integrazione, ma non li rende equivalenti. Formati, limiti, strumenti e trattamento dei dati possono differire. Un fallback deve rispettare la configurazione autorizzata per il cliente, oltre a gestire un errore tecnico.

Le code devono conservare stato e contesto

Sincronizzare uno storico, caricare media o attendere una generazione può richiedere più tempo di una richiesta web. Le code Laravel offrono strumenti per organizzare queste attività e gestire gli errori.

Per il lettore del pannello è utile distinguere lavoro in attesa, in esecuzione, completato o fallito. Per chi mantiene il servizio servono tentativi, tempi e riferimenti che permettano di ricostruire il passaggio problematico.

Un nuovo tentativo non deve produrre una seconda pubblicazione quando il primo ha avuto successo ma la risposta è andata persa. L’idempotenza richiede identificatori e riconciliazione con il sistema esterno; non basta impostare un numero massimo di retry.

WordPress resta un sistema con una propria storia

Le API dei post WordPress espongono contenuti, stati e date. L’integrazione deve mantenere il legame tra risorsa interna e articolo remoto, includendo media, autori e tassonomie quando coinvolti.

Il caso difficile è una modifica contemporanea nei due ambienti. Definirei quale campo appartiene a quale sistema, quando segnalare un conflitto e come evitare di sovrascrivere un intervento editoriale più recente.

Anche la visibilità pubblica ha una verifica propria: salvare il post nel CMS non prova che la cache abbia già aggiornato la pagina. In questa revisione del blog ho controllato entrambe le risposte proprio per distinguere lo stato in WordPress dall’HTML ricevuto dal visitatore.

Una piattaforma deve poter essere mantenuta per parti

Estrarre un servizio separato ha senso quando chiarisce responsabilità, consumo di risorse o ciclo di rilascio. Introduce anche rete, errori parziali e versioni da coordinare. Non userei il numero di microservizi come misura della maturità del prodotto.

Nel valutare un cambiamento mi interessa poter seguire un articolo dall’ingresso alla pubblicazione e capire dove intervenire se qualcosa si ferma. È questa tracciabilità del lavoro, insieme alla qualità del risultato editoriale, che rende utile l’architettura.