Топик разбит на партиции; сообщения с одним ключом попадают в одну партицию (партиционирование по ключу). Параллелизм потребления ограничен числом партиций. В Go при создании топика или при продюсинге указывают число партиций; consumer подключается к партициям (в группе партиции распределяются между участниками). Увеличение партиций после создания возможно, но меняет распределение ключей.
msg := kafka.Message{Key: []byte(userID), Value: data}
w.WriteMessages(ctx, msg)