Pub/sub now works out of the box — New() starts a process-scoped
embedded NATS server with JetStream. The PubSub interface remains
for custom backends via Config(Options{PubSub: ...}).
- Move vianats functionality into nats.go (eliminates circular import)
- Add NATSConn(), JetStream(), EnsureStream(), ReplayHistory[T]() to via
- Delete vianats/ package
- Simplify nats-chatroom and pubsub-crud examples
- Rewrite pubsub tests to use real embedded NATS
16 lines
522 B
Go
16 lines
522 B
Go
package via
|
|
|
|
// PubSub is an interface for publish/subscribe messaging backends.
|
|
// By default, New() starts an embedded NATS server. Supply a custom
|
|
// implementation via Config(Options{PubSub: yourBackend}) to override.
|
|
type PubSub interface {
|
|
Publish(subject string, data []byte) error
|
|
Subscribe(subject string, handler func(data []byte)) (Subscription, error)
|
|
Close() error
|
|
}
|
|
|
|
// Subscription represents an active subscription that can be manually unsubscribed.
|
|
type Subscription interface {
|
|
Unsubscribe() error
|
|
}
|