Communication & APIs
An HTTP callback that one system sends to another to notify it of an event, enabling push-style integrations between services.
A webhook is an HTTP POST that one service (the sender) sends to a URL provided by another service (the receiver) when something interesting happens. Stripe sends webhooks when payments succeed; GitHub sends webhooks on push events; Slack sends webhooks on slash commands. The receiver does not poll — it sits behind a URL and reacts when notified.
Webhooks are simpler than pub/sub for cross-organization integration because they piggyback on HTTP and need no shared broker. The receiver only needs a publicly reachable URL. This simplicity is also their weakness: there is no built-in retry policy (each sender invents one), no ordering guarantee, no easy replay, and the receiver must be robust to duplicates.
Best practice for receivers: respond quickly with 2xx (queue the work, do not process it inline), verify the sender via HMAC signature, treat handlers as idempotent, and store an idempotency key per event to dedupe.
Use webhooks for cross-service event notifications when both sides cannot share infrastructure: third-party SaaS integrations, payment notifications, repository events, customer integrations into your platform.
Webhooks are unreliable in detail — delivery semantics depend entirely on the sender. The receiver must handle retries, duplicates, and out-of-order delivery defensively.
A messaging pattern where publishers emit messages to topics without knowing who consumes them, and subscribers receive messages from topics they care about.
A property of operations such that performing them multiple times has the same effect as performing them once — essential for safe retries.
An architectural style for web APIs based on HTTP verbs (GET, POST, PUT, DELETE) acting on resources identified by URLs.
A high-performance RPC framework using HTTP/2, Protocol Buffers, and code generation for type-safe, low-latency service-to-service communication.
A query language for APIs that lets clients request exactly the fields they need in a single request, eliminating over- and under-fetching.
A persistent, bidirectional communication channel between client and server over a single TCP connection — the standard for real-time web features.