hebel. today · 7 November 202662 / 74

Technology · Software Architecture Patterns

Log-based streaming versus point-to-point queues for microservice backbones

Log-based streaming. Arslan Ahmad argues that log-based systems, such as Apache Kafka or Redpanda, provide the necessary backbone for microservices by retaining events regardless of consumption. Companies like Slack and Discord use these partitioned…

Log-based streaming. Arslan Ahmad argues that log-based systems, such as Apache Kafka or Redpanda, provide the necessary backbone for microservices by retaining events regardless of consumption (Arslan Ahmad from System Design Nuggets). Companies like Slack and Discord use these partitioned commit logs to maintain causal ordering for threaded conversations and audit trails, ensuring that replies never render before the original message (Hands On System Design). Because events are retained in the log, new services like fraud or loyalty modules can start from the beginning to build their own state without requiring changes to the original producer.

Point-to-point queues. Arslan Ahmad notes that simpler point-to-point work queues offer a different model where brokers delete a message immediately once a consumer acknowledges it (Arslan Ahmad from System Design Nuggets). While log-based systems provide massive throughput via sequential disk I/O, they introduce operational weight through partition planning and head-of-line blocking if a single message fails (Arslan Ahmad from System Design Nuggets). Teams that choose simple queues avoid the complexity of managing offsets and rebalancing partitions, though they lose the ability to replay history or support multiple independent consumer groups.

Systemic trade-offs. The choice between these models depends on whether the system requires durable event sourcing or simple task handoff. Log-based architectures enable massive fan-out and temporal decoupling, but they force developers to handle eventual consistency and correlation IDs across asynchronous hops.

Try today · 40 min

Implement a transactional outbox to publish your next domain event to a message log.

Write the event to a local database table in the same transaction that updates your entity state.

You need

  • Local database table for outgoing events
  • Event relay or CDC tool like Debezium
  • Message broker topic

Steps

  1. Define an Outbox table in your database schema.
  2. Wrap your business logic and the Outbox insert in a single database transaction.
  3. Configure a CDC tool to watch the transaction log for new rows.
  4. Publish the row changes to your message broker topic.
  5. Mark the event as processed in the Outbox table once published.
LinkedIn X

Sources

  1. Arslan Ahmad, System Design Nuggets ✎ Written by a personExplains the use of Kafka as an event backbone and the transactional outbox pattern for reliable publishing.

  2. Hands On System DesignDetails how Slack and Discord use causal consistency in log processing to preserve order in threaded conversations.

Get this every morning, for your goal.

Tell Hebel your goals and when you want it. Every morning it reads 20,000 newsletters and writes your paper, with one small thing to do today. Free during beta.

Start my paper →

More in Technology

Industrial robotics enters the dark factory era

AI-driven vulnerability research accelerates mass exploitation

Standardizing your digital workspace with persistent AI agents

Define completion receipts to validate agent outcomes

Investment theses lag behind active AI capital deployment

Coding agents now verify interface behavior against live applications

Spec-driven versus simulation-based agent development

Hidden email persistence channels survive password changes

Software Architecture Patterns yesterday

Agentic workflows rely on explicit file-based handoff contracts

Sign in to Hebel first

Likes, your collection and done Hebel need an account. We email you a six digit code; no password.