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

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

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

    public  WindowedStreamPartitioner(final WindowedSerializer<K> serializer);

}