Service Bus Azure - Queues Users use queues to send and receive messages. It is the main connector between the two applications. It also stores the logs until the recipient application is available to process the message. Two significant characteristics of messages in a Queue are "Order" and "Timestamp." Every message, on arrival, is ordered and timestamped. Once the receiving application accepts the message, the message is then held in redundant storage for safekeeping. Finally, all messages use a Pull mode method in delivering messages – this means that messages are only sent when requested.
Service Bus Azure - Topics Though a Queue sends messages using point-to-point communication, Topics also sends messages but uses a concept called the "Publisher/subscriber" scenarios. This means that topics have multiple, independent subscriptions that receive messages from a sender. A subscriber can receive messages sent to a Topic that consists of multiple subscriptions. In this case, a subscription is referred to as an entity. Although subscriptions continue to exist, they can also be auto-deleted or expire. Suppose you don't want all the subscriptions to receive all the messages sent to a Topic. There are "rules" and "filters" that can be used to define such actions or conditions.
Service Bus Azure - Relays While Queues and Topics provide a one-way asynchronous communication using a broker, Relays are entirely different. Relays act as a bi-directional communication tool in which traffic flows from one destination to another; in this case, from sender to receiver. Relays do not store messages like their counterparts but send messages directly from the sender to the receiver and receiver to the sender whenever the need arises.
Message Sessions Message sessions are used to create a FIFO (First-in, First-out) guarantee. This allows for ordered handling of infinite sequences of messages that are related.
Auto-Forwarding This unique feature chains a subscription or a queue to another queue or topic. The only condition for this to be successful is that they must be in the same namespace. Chaining service bus entities with the auto-forwarding feature automatically remove messages from a subscription or queue and inserts them to a different queue or topic.
Dead-Letter Queue (DLQ) A DLQ is used to hold messages that cannot be delivered to any recipient. These messages cannot be processed and thus are stored in a DLQ. The service bus supports DLQ and allows you to inspect the messages and remove them.
Scheduled Delivery With Azure Service Bus, you can delay the processing of a message to a topic or queue and schedule it later. These are referred to as scheduled messages.
Message Deferral Message deferral is a unique feature that allows subscription clients (subscribers) or a queue to defer receiving a message until a future time. This can be due to particular circumstances from the application. Once this is initiated, the message is kept in the queue or subscription but set aside.