Una de las primeras cosas en las que pienso cuando uso un nuevo servicio (como un almacén de datos que no es RDBMS o una cola de mensajes) es: "¿Cómo debo estructurar mis datos?".
He leído y visto algunos materiales introductorios. En particular, tome, por ejemplo, Kafka: un sistema de mensajería distribuida para el procesamiento de registros , que escribe:
- "un tema es el contenedor con el que están asociados los mensajes"
- "La unidad más pequeña de paralelismo es la partición de un tema. Esto implica que todos los mensajes que ... pertenecen a una partición particular de un tema serán consumidos por un consumidor en un grupo de consumidores".
Sabiendo esto, ¿cuál sería un buen ejemplo que ilustra cómo usar temas y particiones? ¿Cuándo debería ser algo un tema? ¿Cuándo debería ser algo una partición?
Como ejemplo, digamos que mis datos (Clojure) se ven así:
{: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"}
¿Debería basarse el tema user-id
? viewed
? at
? ¿Qué hay de la partición?
¿Cómo decido?