apache / apache/rocketmq-clients

The roadmap of the golang client

Open
#29 2 comments 0 reactions 0 assignees View on GitHub
Golang no stale
Dominant language
Java
Stars
505
Forks
313
Avg merge
11h 28m
Merged PRs (30d)
6

Description

Since the initial implementation of the golang client has been merged(#19), there are still some unfinished tasks to be done.

In the first stage, the basic features will be implemented.

* **Adapt to [v2 protocol](https://github.com/apache/rocketmq-apis)**
The [v1 version](https://github.com/apache/rocketmq-apis/releases/tag/v1.0) is archived. It is necessary to adapt to the latest protocol.
* **Adapt to the unified API specs ( Producer + Simple Consumer )**
We established a [New and Unified API Specs](https://shimo.im/docs/m5kv92OeRRU8olqX), see more details from [java apis](https://github.com/apache/rocketmq-clients/tree/master/java/client-apis/src/main/java/org/apache/rocketmq/client/apis). The part of producer and simple consumer takes precedence. The four types of message will be supported in this phase.

In the second stage.
* **Clear error handling**
The [RPC-status code mapping table](https://github.com/apache/rocketmq-apis/blob/main/status_code.md) indicates the status codes that may occur in various cases across languages, you can get more information from this.
* **Improve the observability**
The observability contains logging, tracing and metrics, you can improve observability of client-side through [OpenTelemetry](https://opentelemetry.io/) or other tools from these aspects.
* **Adapt to the unified API specs ( Push Consumer )**
Implement the push consumer.

Documentations and unit tests should cover the corresponding part in each phase.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the initial Go client implementation from issue #19, then compare it with the v2 protocol and the Java client-apis referenced here. Break the roadmap into separately scoped protocol, unified API, error-handling, observability, and push-consumer work. Done requires the corresponding implementation, documentation, and unit-test coverage for each phase.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend-api-design, distributed-systems, observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.