Namespace Silverback.Messaging.Broker
Classes
BrokerCollection
Holds a reference to all the registered IBroker implementations and is able to resolve the right instance according to the IEndpoint type.
BrokerConnectorService
Automatically connects the message brokers when the application starts and disconnects them when the application is being stopped.
Broker<TProducerEndpoint, TConsumerEndpoint>
The base class for all IBroker implementations.
Consumer
Consumes an endpoint and invokes a callback delegate when a message is received.
Consumer<TBroker, TEndpoint, TIdentifier>
Consumes an endpoint and invokes a callback delegate when a message is received.
KafkaBroker
An IBroker implementation for Apache Kafka.
KafkaConsumer
Consumes an endpoint and invokes a callback delegate when a message is received.
KafkaConsumerLocalTimeoutMonitor
Handles the consumer error callback and reverts the consumer Ready status to Connected when the local poll timeout is exceeded. The consumer should eventually reconnect but this allows to accurately track its status.
KafkaOffset
Represents the position of the message in a partition.
KafkaProducer
Produces to an endpoint.
KafkaTransactionalProducer
Produces to an endpoint.
MqttBroker
An IBroker implementation for MQTT.
MqttConsumer
Consumes an endpoint and invokes a callback delegate when a message is received.
MqttMessageIdentifier
The MQTT broker doesn't provide any message identifier, so the identifier is either the MessageId header value or a client-side generated Guid.
MqttProducer
Produces to an endpoint.
ProduceException
The exception that is thrown by the IProducer when the message cannot be produced or the message broker didn't acknowledge it.
Producer
Produces to an endpoint.
Producer<TBroker, TEndpoint>
Produces to an endpoint.
RabbitBroker
An IBroker implementation for RabbitMQ.
RabbitConsumer
Consumes an endpoint and invokes a callback delegate when a message is received.
RabbitDeliveryTag
Represents the unique message identifier assigned by the message broker.
RabbitProducer
Produces to an endpoint.
Interfaces
IBroker
The basic interface to interact with the message broker.
IBrokerCollection
Holds a reference to all the registered IBroker implementations and is able to resolve the right instance according to the IEndpoint type.
IBrokerMessageIdentifier
Represents the primary identifier used by the message broker to recognize the exact message.
It can represent a Kafka offset, a RabbitMQ delivery tag or other similar constructs.
The IBrokerMessageOffset interface should be implemented whenever possible to allow the exactly-one delivery using the OffsetStoreExactlyOnceStrategy.
If the message broker doesn't provide any message identifier, a local one can be created (e.g.
Guid.NewGuid()
) but this will prevent some features to work properly.
IBrokerMessageOffset
Represents the primary identifier used by the message broker to recognize the exact message. This is different than the base IBrokerMessageIdentifier because it has a ordinal meaning and is comparable.
It can represent a Kafka offset or another similar construct.
Being able to compare the identifiers (offsets) allows the exactly-one delivery using the OffsetStoreExactlyOnceStrategy and for it to work properly the offsets have to be universally comparable (across restarts and across multiple instances, for a given Key).
IConsumer
Consumes an endpoint and invokes a callback delegate when a message is received.
IConsumerStatusChange
Encapsulates the information about the consumer status transition.
IConsumerStatusInfo
Encapsulates the status details and basic statistics of an IConsumer.
IProducer
Produces to an endpoint.
Enums
ConsumerStatus
The possible states of the IConsumer as exposed in the IConsumerStatusInfo.