Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Bulk publish: per-message metadata in publish_events

オープン
#1,214 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
76/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
grpc, python
領域
api, backend

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Python
スター
272
フォーク
152
平均マージ
1日 13時間
マージ済み PR(30日)
4

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

dapr/python-sdk のほかの issue

dapr/python-sdk の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。