Una delle prime cose a cui penso quando utilizzo un nuovo servizio (come un archivio dati non RDBMS o una coda di messaggi) è: "Come devo strutturare i miei dati?".
Ho letto e visto alcuni materiali introduttivi. In particolare, prendiamo ad esempio Kafka: un sistema di messaggistica distribuita per l'elaborazione dei log , che scrive:
- "un argomento è il contenitore a cui sono associati i messaggi"
- "la più piccola unità di parallelismo è la partizione di un argomento. Ciò implica che tutti i messaggi che ... appartengono a una particolare partizione di un argomento saranno consumati da un consumatore in un gruppo di consumatori."
Sapendo questo, quale sarebbe un buon esempio che illustra come usare argomenti e partizioni? Quando qualcosa dovrebbe essere un argomento? Quando qualcosa dovrebbe essere una partizione?
Ad esempio, supponiamo che i miei dati (Clojure) siano:
{:user-id 101 :viewed "/page1.html" :at #inst "2013-04-12T23:20:50.22Z"}
{:user-id 102 :viewed "/page2.html" :at #inst "2013-04-12T23:20:55.50Z"}
L'argomento dovrebbe essere basato user-id
?viewed
? at
? E la partizione?
Come decido?