Section 4 · 14 Articles

Communication Patterns

The patterns that define how components, services, and systems exchange information — synchronously and asynchronously, point-to-point and brokered.

Request-Response

Direct synchronous call and immediate reply — the simplest communication pattern for immediate answers.

Sync Essential

Pub/Sub

One event distributed to multiple subscribers — for decoupled, independent consumer reactions.

Async Essential

Message Queues

Producer and consumer decoupled in time through a durable buffer for deferred processing.

Async Essential

Event Streaming

Continuous flow of ordered, replayable events for real-time and historical processing.

Async Streaming

Webhooks

Outbound callbacks to notify external systems when events occur in your system.

Async Integration

Command Pattern

Intent-driven instructions to perform an action, decoupled from the actor that issues it.

Messaging

Event Notification

Propagating facts about state changes to other parts of the system without coupling.

Messaging EDA

Fan-Out/Fan-In

Distribute work to many workers then aggregate results for parallelizable tasks.

Messaging Scalability

Competing Consumers

Multiple workers consuming from a shared queue to scale message processing horizontally.

Messaging Scalability

Claim Check Pattern

Store large message payloads externally and pass only a reference token in the message.

Messaging

Message Routing

Directing messages to the correct handler based on content, headers, or routing rules.

Messaging Integration

Correlation IDs

Tracking requests across distributed services for end-to-end observability and debugging.

Observability Essential

Transactional Outbox

Publishing messages reliably by writing them atomically to the database alongside business state.

Messaging Reliability

Inbox Pattern

Idempotent message consumption by recording processed message IDs in a consumer inbox table.

Messaging Reliability