Communication in Computer science - rahul7838/quora.clone GitHub Wiki

Let's clarify the distinctions between protocols, architectural styles, and data formats:

Communication Protocols vs. Architectural Styles vs. Data Formats

  1. Communication Protocols:

    • Definition: Rules and standards that define how data is transmitted over a network.
    • Examples: HTTP, HTTPS, TCP, UDP, WebSocket, gRPC, MQTT, AMQP.
    • Role: They handle the transport of data between systems.
  2. Architectural Styles/Patterns:

    • Definition: High-level design patterns that define how software systems are organized and interact.
    • Examples: REST, SOAP, RPC, GraphQL.
    • Role: They define how systems are structured and how components interact.
  3. Data Formats:

    • Definition: Formats used to encode data for transmission or storage.
    • Examples: JSON, XML, Protocol Buffers.
    • Role: They define the structure and encoding of the data being exchanged.