La pubblicazione multipiattaforma sembra semplice fino a quando non si scopre che le piattaforme vivono una vita propria. YouTube può restituire un errore del server per alcuni minuti, Telegram può temporaneamente limitare un bot, VK può richiedere una nuova autorizzazione del token dell'amministratore della comunità proprio nel momento in cui il video dovrebbe essere pubblicato su tre canali. La questione non è se si verificherà un tale guasto, ma cosa farà il sistema quando accadrà.
L'approccio più ingenuo alla pubblicazione automatica è considerarla un'operazione atomica: o il materiale viene pubblicato immediatamente ovunque, o non viene pubblicato affatto, e in caso di guasto parziale tutto deve essere rifatto manualmente. Nella pratica, questo è lo scenario più sgradevole: il video è già stato pubblicato su YouTube con il titolo e la copertina corretti, mentre la pubblicazione su Telegram e VK è bloccata a causa della temporanea indisponibilità della piattaforma — e ora è necessario capire manualmente dove è uscito cosa, per non duplicare la pubblicazione.
Abbiamo consapevolmente incorporato in Telematic una logica che considera il guasto parziale della pubblicazione non come un'eccezione, ma come uno scenario di lavoro previsto — e lo gestisce automaticamente.
//Cos'è la pubblicazione parziale
Quando il materiale viene pubblicato contemporaneamente su più piattaforme, il sistema interpreta ogni piattaforma come un tentativo separato all'interno di una singola pubblicazione, e non come un'unica operazione atomica. Se, ad esempio, YouTube e Telegram accettano il materiale, mentre VK restituisce un errore in quel momento — la pubblicazione non è considerata né completamente riuscita né completamente fallita. Riceve lo stato di parzialmente pubblicato: parte dei canali è già uscita, parte è in attesa del proprio turno.
Questa è una differenza fondamentale rispetto all'approccio "tutto o niente". Esso elimina la necessità di annullare pubblicazioni già riuscite solo perché una piattaforma ha fallito, e contemporaneamente non permette al sistema di considerare silenziosamente il materiale "pubblicato", se in realtà è uscito solo una parte dei canali.
//Ripubblicazione automatica sui canali rimanenti
Dopo che la pubblicazione è stata contrassegnata come parziale, il sistema non lascia il problema alla discrezione dell'uomo. Essa tenta automaticamente nuove pubblicazioni su quelle piattaforme che non hanno funzionato al primo tentativo, senza che qualcuno debba entrare manualmente nella scheda del contenuto, controllare cosa non è uscito e cliccare su "pubblica" di nuovo solo per i canali necessari.
Questo è particolarmente importante per i guasti di natura temporanea: limitazioni nella frequenza delle richieste da parte della piattaforma, indisponibilità temporanea dell'API, token scaduto che sta per essere aggiornato. Nella maggior parte di questi casi, un nuovo tentativo dopo un certo tempo ha successo senza alcun intervento — il sistema stesso recupera i canali rimanenti e il materiale gradualmente raggiunge lo stato di completamente pubblicato.
//Ripubblicazione regolare programmata per l'intero progetto
Un ulteriore livello di protezione — non una ripubblicazione puntuale di una singola pubblicazione, ma un controllo regolare a livello di progetto: il sistema controlla periodicamente le pubblicazioni che sono rimaste parziali più a lungo del previsto e cerca di chiudere i canali rimanenti. Questa è una precauzione nel caso di guasti più prolungati — ad esempio, se la piattaforma è stata non disponibile non per cinque minuti, ma per diverse ore, e la normale ripubblicazione automatica non ha ancora avuto modo di funzionare nel primo ciclo.
Per questa ripubblicazione è importante che il progetto abbia un programma attivo di pubblicazioni — è proprio questo che determina il ritmo con cui il sistema torna alle pubblicazioni incomplete e ne verifica lo stato. Senza un programma, le pubblicazioni parziali saranno comunque visibili nell'interfaccia, ma la ripubblicazione automatica regolare sarà limitata.
//La nostra esperienza: il giorno in cui un canale si è disattivato
Un giorno, uno dei nostri canali si è disattivato per alcune ore — la piattaforma stava effettuando lavori tecnici programmati di cui siamo venuti a conoscenza solo grazie agli errori che tornavano. Durante questo tempo, attraverso l'autopilota sono passate diverse pubblicazioni che dovevano essere pubblicate contemporaneamente su più piattaforme.
Se il sistema avesse funzionato secondo il principio "tutto o niente", ciascuna di queste pubblicazioni avrebbe dovuto essere ricostruita manualmente e reinviata a tutti i canali — rischiando di duplicare il materiale dove era già uscito correttamente. Invece, abbiamo semplicemente visto nell'interfaccia diverse pubblicazioni con lo stato "parzialmente pubblicato": sui canali funzionanti il materiale è uscito in tempo, mentre sul canale non disponibile il post aspettava onestamente il suo turno.
Quando la piattaforma si è ripristinata alcune ore dopo, la ripubblicazione regolare programmata ha automaticamente recuperato le pubblicazioni rimanenti senza alcun intervento manuale da parte nostra — siamo semplicemente entrati nel calendario il giorno successivo e abbiamo visto che tutto si era chiuso da solo. Questo è il caso in cui l'affidabilità operativa funziona in modo invisibile: c'era un problema, ma non ha creato lavoro per noi.
//Cosa significa questo nella pratica
Se vedi nel progetto una pubblicazione con lo stato "parzialmente pubblicato", non è il caso di affrettarsi a capire manualmente e duplicare la pubblicazione sui canali mancanti — è probabile che il sistema abbia già messo in coda un nuovo tentativo e si occuperà di questo da solo nel prossimo ciclo. L'intervento manuale ha senso solo quando lo stato parziale persiste in modo insolito a lungo — questo è un segnale che il problema dalla parte della piattaforma è più serio di un normale guasto temporaneo e richiede attenzione separata (ad esempio, un'autorizzazione realmente scaduta che deve essere aggiornata manualmente).
È anche importante assicurarsi che nel progetto sia impostato un programma attivo di pubblicazioni — non solo determina quando esce nuovo contenuto, ma stabilisce anche il ritmo con cui il sistema torna alle pubblicazioni incomplete. Un progetto senza un programma attivo perde parte della protezione automatica in caso di guasti prolungati delle piattaforme.
In definitiva, l'idea della pubblicazione parziale e della ripubblicazione automatica è semplice: il guasto di una piattaforma non dovrebbe diventare un problema per l'intera pubblicazione e, tanto meno, dovrebbe trasformarsi in lavoro manuale per una persona che voleva semplicemente che il video fosse pubblicato ovunque dove doveva.


