https://github.com/accelbyte/messagebus-go-sdk
Go SDK for connecting AccelByte's Justice services over message broker
https://github.com/accelbyte/messagebus-go-sdk
Last synced: 6 months ago
JSON representation
Go SDK for connecting AccelByte's Justice services over message broker
- Host: GitHub
- URL: https://github.com/accelbyte/messagebus-go-sdk
- Owner: AccelByte
- Created: 2019-07-17T09:52:13.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-10-10T05:21:12.000Z (over 3 years ago)
- Last Synced: 2025-07-19T08:48:51.778Z (8 months ago)
- Language: Go
- Size: 1.42 MB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://travis-ci.com/AccelByte/messagebus-go-sdk)
# messagebus-go-sdk
Go SDK to connecting AccelByte's justice Go services over message broker
## Supported Message Broker
- Apache Kafka
## Usage
### Importing Package
```go
import "github.com/AccelByte/messagebus-go-sdk"
```
### Publish Asynchronous Message
Publish message asynchronously
```go
client.PublishAsync(
NewPublish().
Topic("topic").
MessageType("message type").
Message("test message").
Service("service name").
TraceID("trace id").
MessageID("message id"))
```
### Publish Synchronous Message
Publish message synchronously with error response
```go
err := client.PublishSync(
NewPublish().
Topic("topic").
MessageType("message type").
Message("test message").
Service("service name").
TraceID("trace id").
MessageID("message id"))
```
### Publish Message With Response
Publish message and wait a response from consumer (restful api concepts) with timeout.
```go
client.PublishWithResponses(
NewPublish().
Topic("topic").
MessageType("message type").
Message("test message").
TraceID("trace id").
MessageID("message id").
Callback(func(message *Message, err error))
```
Set global timeout for publish message with response (in millisecond)
```go
client.SetTimeout(10000)
```
### Register Callback for Subscribe Message
Register callback function for specific topic and message type.
```go
client.Register(
NewSubscribe().
Topic("topic").
MessageType("message type").
Callback(func(message *Message, err error)))
```
### Authentication
#### SASL-SCRAM Authentication
Example configuration:
```
securityConfig := &messagebus.SecurityConfig{
AuthenticationType: "SASL-SCRAM",
SASLUsername: "username",
SASLPassword: "password",
}
kafkaClient, err := messagebus.NewKafkaClientWithAuthentication("localhost:9092", "realmName", securityConfig)
```