Message Oriented Communication

Kavitha S
16 Aug 202407:53

Summary

TLDRThis video explores message-oriented communications in distributed environments, focusing on two key axes: persistence (whether messages are stored or discarded) and synchronicity (whether communication is synchronous or asynchronous). It discusses four main types: persistent synchronous, persistent asynchronous, transient synchronous, and transient asynchronous. Examples include email for persistent asynchronous, messaging apps for persistent synchronous, UDP for transient asynchronous, and RPC for transient synchronous. It also introduces message queuing systems (MQs) for persistent communication, ensuring message delivery over time.

Takeaways

  • 🔄 Message-oriented communication in distributed systems can be classified along two axes: persistence and synchronicity.
  • 📥 Persistent communication involves storing messages at each intermediate point until delivery, as seen in email or postal systems.
  • ⏳ Transient communication buffers messages only temporarily; if a recipient is unavailable, messages are discarded, like in general TCP/IP communication.
  • 🔒 Synchronous communication requires the sender to wait for an acknowledgment before proceeding, resulting in blocking behavior.
  • 📤 Asynchronous communication allows the sender to continue without waiting for an acknowledgment, providing non-blocking behavior.
  • 📧 Persistent asynchronous communication means the sender continues without blocking, with messages guaranteed to reach the receiver eventually (e.g., email).
  • 📨 Persistent synchronous communication involves blocking until acknowledgment is received, though delivery may be delayed (e.g., messaging systems).
  • 💨 Transient asynchronous communication does not guarantee delivery if the receiver or intermediate router is down (e.g., UDP).
  • 🔁 Delivery-based transient synchronous communication involves the sender resuming only when the message is delivered (similar to synchronous RPC).
  • 📊 Message queuing systems (MQs) like Kafka and RabbitMQ ensure persistent communication by using on-disk buffers for long-term message storage.

Q & A

  • What are the two axes along which message-oriented communication can be viewed?

    -Message-oriented communication can be viewed along two axes: persistence, which indicates whether the system is persistent or transient, and synchronicity, which refers to whether the communication is synchronous or asynchronous.

  • What is persistent communication in message-oriented systems?

    -In persistent communication, messages are stored at each intermediate node along the way until the next node is ready to take delivery. This is also called a store-and-forward paradigm, with examples including the postal system and email.

  • What happens to messages in transient communication if the next host is unavailable?

    -In transient communication, if the message cannot be delivered or the next host is down, the message is discarded, as messages are buffered only for a short period.

  • How does synchronous communication work in a message-oriented system?

    -In synchronous communication, the sender blocks further operations until an acknowledgement or response is received. This is also known as blocking communication.

  • What is asynchronous communication and how does it differ from synchronous communication?

    -Asynchronous communication, also known as non-blocking communication, allows the sender to continue execution without waiting for an acknowledgement or response, unlike synchronous communication where the sender is blocked.

  • Can you give an example of persistent asynchronous communication?

    -An example of persistent asynchronous communication is email. The sender continues executing without blocking, and the message may take an arbitrary amount of time to reach the receiver, even if the sender is not running when the receiver reads the message.

  • What distinguishes transient asynchronous communication from other types?

    -In transient asynchronous communication, the sender continues execution after sending the message, but if the receiver or any intermediate router is not running, the message is discarded. UDP communication is an example.

  • What is the role of buffering in asynchronous communication?

    -In asynchronous communication, the sender needs a local buffer to hold the message, allowing it to continue execution and deal with the message later, as it does not wait for an immediate response.

  • What is message queuing in the context of message-oriented persistent communication?

    -Message queuing systems (MQs) use on-disk buffers to ensure the persistence of messages over long periods. Messages are stored in queues with specific names or addresses for delivery, ensuring store-and-forward communication. Examples include Kafka and RabbitMQ.

  • What is the difference between recipient-based and delivery-based transient synchronous communication?

    -In recipient-based transient synchronous communication, the sender is blocked until an acknowledgment is received indicating the message was received. In delivery-based transient synchronous communication, the sender resumes execution when the message is delivered to the receiver.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
Distributed SystemsMessage PersistenceSynchronous CommunicationAsynchronous MessagingTransient CommunicationRPCMessage QueuingTCP/IPNetworking ProtocolsEmail Systems