Files
sendico/api/pkg/messaging/internal/producer/producer.go
Stephan D 62a6631b9a
All checks were successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/nats Pipeline was successful
service backend
2025-11-07 18:35:26 +01:00

27 lines
753 B
Go

package messagingimp
import (
mb "github.com/tech/sendico/pkg/messaging/broker"
me "github.com/tech/sendico/pkg/messaging/envelope"
"github.com/tech/sendico/pkg/mlogger"
"github.com/tech/sendico/pkg/mutil/mzap"
"go.uber.org/zap"
)
type ChannelProducer struct {
logger mlogger.Logger
broker mb.Broker
}
func (p *ChannelProducer) SendMessage(envelope me.Envelope) error {
// TODO: won't work with Kafka, need to serialize/deserialize
if err := p.broker.Publish(envelope); err != nil {
p.logger.Warn("Failed to publish message", zap.Error(err), mzap.Envelope(envelope))
}
return nil
}
func NewProducer(logger mlogger.Logger, broker mb.Broker) *ChannelProducer {
return &ChannelProducer{logger: logger.Named("producer"), broker: broker}
}