Contesto
Abbiamo un’istanza di Discourse ospitata nel cloud per la comunità Ruby australiana (la chiamerò Master). Due volte all’anno organizziamo eventi RailsCamp. In queste occasioni trascorriamo un intero weekend insieme in una località remota (50-150 persone per evento). Spesso c’è poca o nessuna copertura cellulare, il che rende difficile la coordinazione.
Stavo pensando che un’istanza di Discourse ospitata sulla rete locale durante l’evento sarebbe ideale (la chiamerò Slave). Potremmo utilizzarla per pubblicare annunci, programmi, condividere foto, ecc.
Dato che abbiamo già una comunità in crescita su Master, sarebbe ottimo sfruttarla. Ad esempio, il tuo profilo sarebbe già configurato quando arrivi all’evento e avresti una copia di tutto il contenuto.
Sfida
Come far funzionare l’istanza Slave di Discourse insieme a Master quando Slave è offline per tre giorni.
Soluzione proposta
So che Discourse non è progettato per questo scenario, ma penso che ci sia un modo per adattarlo alle nostre esigenze. Sono interessato alle vostre idee su questo.
Il piano:
- Impostiamo un’istanza Slave di Discourse sulla rete locale durante l’evento.
- Poco prima dell’evento, facciamo un backup di Master e lo ripristiniamo su Slave.
- Su Slave:
- tutte le categorie saranno contrassegnate come sola lettura;
- creiamo una nuova categoria in scrittura/lettura per l’evento.
- Dopo l’evento, utilizziamo uno script Ruby per trasferire le informazioni da Slave a Master:
- nuovi utenti creati;
- tutti i topic e i post della categoria creata per l’evento.
- Risultato finale.
Domande
- Vedete qualche problema con la soluzione proposta?
- Potete immaginare un approccio migliore?
Sarebbe ottimo consentire l’accesso in scrittura a tutte le categorie su Slave, ma temo che il processo di sincronizzazione potrebbe diventare molto complicato. Inoltre, ciò potrebbe creare confusione, poiché alcune persone potrebbero ancora accedere a Master se hanno copertura.
