apache / apache/rocketmq-clients

[Feature] Go producer: support batch send in sync mode

Open
#1,317 6 comments 0 reactions 0 assignees View on GitHub
type/new feature
Dominant language
Java
Stars
505
Forks
313
Avg merge
11h 28m
Merged PRs (30d)
6

Description

### Programming Language of the Client

Go

### Is Your Feature Request Related to a Problem?

Currently, the Go client (rocketmq-clients/golang/v5) only supports sending a single message via producer.Send() in sync mode. There is no batch send interface available. There is already a private send0 interface that accepts a batch.

send0(ctx context.Context, msgs []*UnifiedMessage, txEnabled bool) ([]*SendReceipt, error)

The legacy rocketmq-client-go (2.x) already supports batch message sending. It would be great to have this feature in the new 5.x client as well.

### Describe the Solution You'd Like

SendBatch(context.Context, []*Message) ([]*SendReceipt, error)

### Describe Alternatives You've Considered

None

### Additional Context

_No response_

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in rocketmq-clients/golang/v5 by reading the producer.Send entry point and the existing private send0 interface, then compare batch support in the legacy rocketmq-client-go 2.x client. Done means the new client exposes SendBatch(context.Context, []*Message) and returns the expected send receipts and error behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.