class WindowedStreamPartitioner implements StreamPartitioner<Windowed<K>, V> {

    public Integer partition(Windowed<K> windowedKey, V value, int numPartitions) {
        byte[] keyBytes = serializer.serializeBaseKey(null, windowedKey);

        // hash the keyBytes to choose a partition
        return toPositive(Utils.murmur2(keyBytes)) % numPartitions;
    }

    public  WindowedStreamPartitioner(WindowedSerializer<K> serializer);

}