mirror of
https://github.com/go-kratos/kratos.git
synced 2025-02-05 13:15:11 +02:00
parent
1b16831cf6
commit
dc9c808e02
@ -45,9 +45,9 @@ This document defines the roadmap for Kratos development.
|
|||||||
- [ ] Streaming Handler
|
- [ ] Streaming Handler
|
||||||
- [ ] Cache
|
- [ ] Cache
|
||||||
- [ ] go-redis
|
- [ ] go-redis
|
||||||
- [ ] Queue
|
- [x] Pubsub
|
||||||
- [ ] Broker API
|
- [x] Absctraction
|
||||||
- [ ] Kafka
|
- [x] Kafka
|
||||||
- [ ] Nats
|
- [ ] Nats
|
||||||
- [ ] Database
|
- [ ] Database
|
||||||
- [ ] Ent
|
- [ ] Ent
|
||||||
|
3
pubsub/README.md
Normal file
3
pubsub/README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Pubsub
|
||||||
|
|
||||||
|
* [Kafka](https://github.com/go-kratos/kafka)
|
39
pubsub/pubsub.go
Normal file
39
pubsub/pubsub.go
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package pubsub
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Message is an absctraction for all messages that
|
||||||
|
// are sent to quque or received from queue.
|
||||||
|
type Message struct {
|
||||||
|
Key string
|
||||||
|
Value []byte
|
||||||
|
Header map[string]string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Event given to a subscription handler for processing.
|
||||||
|
type Event interface {
|
||||||
|
Message() *Message
|
||||||
|
Ack() error
|
||||||
|
Nack() error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handler is a callback function that processes messages delivered
|
||||||
|
// to asynchronous subscribers.
|
||||||
|
type Handler func(context.Context, Event) error
|
||||||
|
|
||||||
|
// Publisher is absctraction for sending messages
|
||||||
|
// to queue.
|
||||||
|
type Publisher interface {
|
||||||
|
Publish(ctx context.Context, msg *Message) error
|
||||||
|
PublishAsync(ctx context.Context, msg *Message, callback func(err error)) error
|
||||||
|
Close() error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Subscriber is an absctraction for receiving messages
|
||||||
|
// from queue.
|
||||||
|
type Subscriber interface {
|
||||||
|
Subscribe(ctx context.Context, h Handler) error
|
||||||
|
Close() error
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user