apache / apache/pulsar-client-cpp
Key-based batching and hashingScheme parameter for Python client
- Linguagem predominante
- C++
- Estrelas
- 71
- Forks
- 90
- Merge médio
- 2h 33min
- PRs com merge (30d)
- 3
Descrição
**Short intro**
We're running a platform that's effectively just a bunch of microservices written in Python, Java and Go which are communicating through Kafka. Currently we're considering moving from Kafka to Pulsar.
However, one of the main features we need is key-based message routing for solving concurrency problems. Pulsar has that option with KeyShared subscription mode.
**The problem**
In Python, KeyShared subscription works only if producer disables batching. I ran some tests in my local environment and disabling batching results in high decrease of throughput (~25k/s with batching vs ~9k/s without).
**Features that would've solved the problem**
- Key-based batching for Python client
- HashingScheme parameter when creating producer so all of our services (Java, Python and Go) could have the same hashing scheme
Guia de contribuição
Direção de pesquisa
Comece rastreando como o cliente Python lida atualmente com o batching de produtores e como a criação de produtores expõe a configuração. Compare os esquemas de hashing usados pelos clientes Python, Java e Go. O trabalho estará concluído quando o Python oferecer suporte a batching baseado em chave e os produtores puderem selecionar um esquema de hashing que produza um roteamento compatível entre esses clientes.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- go, java, kafka, python
- Domínio
- distributed-systems
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 30/100