Messaging & Queues
Kafka, RabbitMQ, event-driven architecture
Backpressure: Managing Overload in Distributed Systems
Backpressure is a mechanism that allows a system to signal upstream producers to slow down when a downstream consumer cannot keep up with the rate of incom...
Dead Letter Queues: Handling Failed Messages Gracefully
In any messaging system, some messages will inevitably fail to process. Maybe the payload is malformed, a downstream service is unavailable, or there is a ...
Delivery Semantics: At-Most-Once, At-Least-Once, and Exactly-Once Explained
When a message travels from producer to consumer through a message queue or event stream, what guarantees do you have about delivery? Will the message arri...
Event-Driven Architecture: Building Loosely Coupled, Scalable Systems
Event-Driven Architecture (EDA) is a software design paradigm where the flow of the system is determined by events — significant changes in state that are ...
Apache Kafka: The Definitive Guide to Distributed Event Streaming
Apache Kafka is a distributed event streaming platform capable of handling trillions of events per day. Originally developed at LinkedIn and open-sourced i...
Message Ordering: Guarantees, Challenges, and Solutions in Distributed Systems
Message ordering is one of the most nuanced challenges in distributed messaging. When Service A sends events E1, E2, and E3, will the consumer receive them...
Message Queues: Decoupling Systems for Scale and Reliability
A message queue is a communication mechanism that enables asynchronous data exchange between services. Instead of Service A directly calling Service B and ...
Pub/Sub Pattern: Building Scalable Event-Driven Systems with Publish/Subscribe
The Publish/Subscribe (Pub/Sub) pattern is a messaging paradigm where message senders (publishers) do not send messages directly to specific receivers (sub...
RabbitMQ: The Complete Guide to AMQP-Based Message Brokering
RabbitMQ is an open-source message broker that implements the Advanced Message Queuing Protocol (AMQP). It excels at complex message routing, task distribu...
Stream Processing: Real-Time Data Processing at Scale
Stream processing is the continuous computation of data as it arrives, in contrast to batch processing where data is collected over time and processed in b...