Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Bulk publish: per-message metadata in publish_events

Aperta
#1,214 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@nelson-parente ci sta già lavorando.

Dal 23/9/2026.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
76/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
grpc, python
Ambito
api, backend

Direzione di ricerca

Start in dapr/clients/grpc/client.py#L544 and dapr/aio/clients/grpc/client.py#L493, where publish_events builds BulkPublishRequestEntry values from entry_id, event, and content_type. Add support for BulkPublishEntry metadata while preserving bytes and str entries, and ensure publish_metadata is copied to every entry; done means per-message metadata and request-level metadata reach bulk publish envelopes.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

feature-request

Describe the feature

publish_events does not populate BulkPublishRequestEntry.metadata, so per-message metadata (partition key, session id, Kafka key) cannot be set. Entries are built from entry_id, event and content_type only, in both dapr/clients/grpc/client.py#L544 and dapr/aio/clients/grpc/client.py#L493.

The runtime supports it, and go-sdk (PublishEventsEvent.Metadata), java-sdk (BulkPublishEntry) and js-sdk (PubSubBulkPublishMessage.metadata) all expose it. Same request against dotnet-sdk in dapr/dotnet-sdk#1198.

Side effect: the runtime only merges request-level metadata into entries that already have metadata, so publish_metadata never reaches the envelope either. On 1.18.4 with ttlInSeconds, publish_event sets expiration on the cloudevent and publish_events does not.

Proposed API, mirroring go-sdk:

d.publish_events(
    pubsub_name='pubsub',
    topic_name='TOPIC_A',
    data=[
        BulkPublishEntry(event='{"n": 1}', metadata={'partitionKey': 'tenant-a'}),
        BulkPublishEntry(event='{"n": 2}', metadata={'partitionKey': 'tenant-b'}),
        '{"n": 3}',
    ],
)

Existing bytes/str entries keep working, and publish_metadata should be copied onto every entry.

Release Note

RELEASE NOTE: ADD Per-message metadata support in publish_events bulk publish.

Lingua principale
Python
Stelle
272
Fork
152
Merge medio
3g 21h
PR unite (30g)
5

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di dapr/python-sdk

Tutte le issue di dapr/python-sdk

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.