Sto provando a scrivere un logger IRC di altissima qualità in grado di gestire messaggi come 1k al secondo. Il mio database di scelta è Cassandra e forse più tardi potrei dare un'occhiata a Scylladb.
La mia domanda è come scrivo la parte software da distribuire. Come ottimizzarlo orizzontalmente. Il modo ovvio sarebbe di avere più client connessi a IRC e ciascuno gestisce canali diversi. Ma vorrei dividere meglio il carico di lavoro?
Sono nuovo nello sviluppo di software come questo e mi chiedevo cosa avresti pensato sarebbe stato l'approccio più pulito qui. Carico solo 100 canali per istanza del mio software e quindi forse comunico tramite rabbitmq che mi sono unito a questi canali e nessun altro ha bisogno di farlo? Come potrei renderlo ridondante che forse i canali vengono sempre uniti due volte. (I messaggi hanno un ID univoco da IRC, quindi non ci saranno problemi nel DB delle doppie voci, è sufficiente inserire errori)
I problemi principali qui sono, come faccio a distribuire "canali" / carichi di lavoro tra più client, il migliore.