
Technology | Primary Purpose | Communication Pattern | Best For |
---|---|---|---|
Webhook | Event Notification | Asynchronous, Push (HTTP POST) | Simple, one-way event notifications (e.g., "payment completed"). |
REST API | Resource Management | Synchronous, Request/Response | Stateless CRUD operations, public-facing APIs, mobile apps. |
SOAP API | Structured Service Calls | Synchronous, Request/Response | Enterprise-grade, secure, transactional services (e.g., banking). |
gRPC | High-Performance Services | Synchronous/Async, Request/Response | Microservices, internal systems, low-latency, streaming. |
WebSocket | Full-Duplex Communication | Asynchronous, Persistent Connection | Real-time, interactive apps (e.g., chat, live feeds, games). |
WebRTC | Peer-to-Peer Data/Media | Asynchronous, Peer-to-Peer | Browser-based video/audio calls, file sharing, low-latency data. |
ActiveMQ / RabbitMQ | Message Queuing | Asynchronous, Message Broker | Decoupling services, reliable delivery, task distribution. |
Kafka | Event Streaming Platform | Asynchronous, Log-Based Streaming | High-throughput event streams, data pipelines, activity tracking. |
MQTT | Publish-Subscribe Model | Asynchronous | Decoupling services, Fire-and-Forget, pub/sub., synchronous cryptography to enable secure asynchronous messaging |
GraphQL | Flexible API Querying | Synchronous, Request/Response | APIs where clients need to request specific data, avoiding over-fetching and under-fetching |
Let's group them into categories for better understanding.
These are used when a client sends a request and waits for a specific response from the server.
- What it is: An architectural style for designing networked applications. It uses standard HTTP methods (GET, POST, PUT, DELETE) and typically uses JSON for data format.
- Key Differentiator: Stateless, lightweight, and uses a uniform interface. It's the dominant style for public-facing web APIs.
- Analogy: Ordering from a menu at a restaurant. You give your order (request) and wait for your food (response).
- What it is: A strict protocol for exchanging structured information using XML. It comes with built-in security (WS-Security), transactions, and ACID compliance.
- Key Differentiator: Highly standardized, secure, and heavy-weight. Often used in legacy enterprise systems (e.g., banking, healthcare).
- Analogy: Sending a formal, certified letter with a strict format and a return receipt.
- What it is: A modern, high-performance RPC framework. It uses HTTP/2 for transport and Protocol Buffers (a binary, efficient data format) by default.
- Key Differentiator: Very fast and efficient. Supports bi-directional streaming (not just simple request/response). Ideal for internal communication between microservices.
- Analogy: A highly efficient, specialized courier service for internal company mail that can also handle continuous data feeds.
These are used to decouple systems, where the sender doesn't wait for the receiver to process the message.
- What it is: A simple, user-defined HTTP callback. When an event occurs in System A, it sends an HTTP POST request to a URL (the webhook) you provided in System B.
- Key Differentiator: Extremely simple way to get event notifications over HTTP. It's a "push" model from the server to your client.
- Analogy: Giving your phone number to a package delivery service so they can text you "your package has been delivered."
- What they are: Message brokers that implement the AMQP or JMS protocol. They receive messages from producers and route them to consumers.
- Key Differentiator: They are excellent for task distribution and decoupling. They guarantee that a message is delivered at least once and is processed by one consumer. If a consumer is down, the message waits in the queue.
- Analogy: A post office with a queue for letters. Each letter is processed by one postal worker, and if a worker is sick, the letters wait in line.
- What it is: A distributed, durable, high-throughput event streaming platform. It treats data as an immutable log of events.
- Key Differentiator: Designed for streaming massive volumes of data. Multiple consumers can read from the same stream of events without removing them (pub/sub). Events are stored durably.
- Analogy: A broadcast television channel. The broadcast is sent out (the event stream), and any number of TVs (consumers) can tune in to watch it, both now and later (replay).
- What it is: A protocol providing full-duplex, persistent communication channels over a single TCP connection.
- Key Differentiator: After an initial HTTP "handshake," the connection stays open, allowing the server and client to send messages to each other at any time with very low overhead.
- Analogy: A telephone call. Once the connection is established, both parties can talk and listen simultaneously without hanging up and redialing.
- What it is: A collection of standards and APIs that enables direct, peer-to-peer communication for audio, video, and data between browsers (or other clients).
- Key Differentiator: Peer-to-peer is the key. It's designed for ultra-low-latency media streaming. While a server (signaling server) is needed to initiate the connection, the actual data flow is direct between peers.
- Analogy: A walkie-talkie conversation. You use a base station (signaling server) to find the other person's frequency, but then you talk directly to each other.