feat: Implement Publisher

This commit is contained in:
rupinder-syngh
2025-03-19 19:51:53 +05:30
parent 1be9d9e289
commit ed046d9ce4
9 changed files with 580 additions and 1 deletions

View File

@@ -0,0 +1,16 @@
package definition
import "context"
// Publisher defines the general publisher interface for messaging plugins.
type Publisher interface {
// Publish sends a message (as a byte slice) using the underlying messaging system.
Publish(ctx context.Context, msg []byte) error
Close() error // Important for releasing resources
}
type PublisherProvider interface {
// New initializes a new publisher instance with the given configuration
New(ctx context.Context, config map[string]string) (Publisher, error)
}