package brokerdriver import ( "query-service/internal/adapters/brokeradapter" "github.com/streadway/amqp" ) // Broker models a message broker type Broker interface { CreateConsumer() Consumer CreateProducer() Producer } // A Consumer belongs to a broker and consumes messages from a queue type Consumer interface { ConsumeMessages() SetMessageHandler(handler func(msg *brokeradapter.Message)) } // A Producer belongs to a broker and publishes messages to a queue type Producer interface { PublishMessage(body *[]byte, routingKey *string, headers *amqp.Table) }