Uma das primeiras coisas em que penso ao usar um novo serviço (como um armazenamento de dados não RDBMS ou uma fila de mensagens) é: "Como devo estruturar meus dados?".
Eu li e assisti alguns materiais introdutórios. Em particular, considere, por exemplo, o Kafka: um sistema de mensagens distribuídas para processamento de logs , que escreve:
- "um Tópico é o contêiner ao qual as mensagens estão associadas"
- "a menor unidade de paralelismo é a partição de um tópico. Isso implica que todas as mensagens ... pertencentes a uma partição específica de um tópico serão consumidas por um consumidor em um grupo de consumidores".
Sabendo disso, qual seria um bom exemplo que ilustra como usar tópicos e partições? Quando algo deve ser um tópico? Quando algo deve ser uma partição?
Como exemplo, digamos que meus dados (Clojure) se pareçam com:
{: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"}
O tópico deve ser baseado user-id
? viewed
? at
? E a partição?
Como eu decido?