Building Service Communication Patterns

1. Implementing Synchronous Communication

PropertyDetail
ModelCaller blocks until response
CouplingTemporal — both must be available
LatencySum of hops
ExamplesHTTP, gRPC unary, JDBC
RiskCascading failures; backpressure must propagate

2. Implementing Asynchronous Communication

PropertyDetail
ModelSend-and-forget; reply later or never
CouplingDecoupled in time
ExamplesKafka, SQS, RabbitMQ, async webhooks
ProsBuffer load spikes; resilient to consumer failure
ConsHarder to reason; eventual consistency

3. Implementing Remote Procedure Calls (RPC, gRPC)

Example: gRPC service definition

service OrderService {
  rpc CreateOrder(CreateOrderRequest) returns (Order);
  rpc StreamOrders(StreamRequest) returns (stream Order);
  rpc UploadEvents(stream Event) returns (UploadAck);
  rpc Chat(stream Msg) returns (stream Msg);
}
ModeUse
UnaryStandard request/response
Server streamServer pushes many; client one
Client streamClient uploads; server one
BidirectionalFull duplex (chat, telemetry)
TransportHTTP/2 + protobuf

4. Implementing RESTful APIs

ConstraintDetail
StatelessEach request self-contained
Resource-orientedNouns in URL, verbs as methods
Uniform interfaceStandard HTTP semantics
CacheableETag, Cache-Control
LayeredProxies, gateways transparent

5. Implementing GraphQL APIs

FeatureDetail
Single endpointPOST /graphql
Client-defined queryFetch only needed fields
Schema-firstSDL defines types/queries/mutations
SubscriptionsReal-time over WS
PitfallsN+1 (use DataLoader); query complexity DoS

6. Implementing WebSocket Communication

PropertyDetail
ProtocolRFC 6455; upgrade from HTTP
Full duplexBidirectional persistent
FramesText or binary
Use casesChat, live dashboards, gaming
ScalingSticky sessions or distributed pub/sub

7. Implementing API Gateways

FunctionDetail
RoutingURL/header → backend service
AuthJWT/OAuth validation
Rate limitingPer-API-key throttling
AggregationCompose multiple backends (BFF)
ToolsKong, Envoy, AWS API Gateway, Apigee

8. Implementing Service Mesh

FeatureDetail
Sidecar proxyEnvoy intercepts pod traffic
mTLSAutomatic certificate rotation
Traffic managementCanary, retries, timeouts
ObservabilityBuilt-in metrics, tracing
ToolsIstio, Linkerd, Consul Connect, Cilium Service Mesh

9. Understanding Communication Protocols

ProtocolLayerUse Case
TCP4Reliable byte stream
UDP4Low-latency, no reliability (DNS, gaming)
QUIC4 (over UDP)HTTP/3 transport
HTTP/1.17Universal; head-of-line blocking
HTTP/27Multiplexing, header compression
HTTP/37Multiplexing without HOL block
gRPC7RPC over HTTP/2 + protobuf
AMQP7RabbitMQ messaging
MQTT7IoT pub/sub

10. Implementing Request-Reply Pattern

ApproachDetail
Sync (HTTP/gRPC)Caller blocks for reply
Async via reply queueCorrelate via correlation-id; reply-to queue
Callback URLWebhook to caller's endpoint
PollingCaller polls a status endpoint