Kafka acks=all and min.insync.replicas Explained

With acks=1 the leader says “saved”, then dies before copying. The new leader never had the payment. The fix: acks=all + min ISR = no silent loss.

In this chapter

Wait until the copies have it

What breaks

With acks=1 the leader says “saved”, then dies before copying. The new leader never had the payment.

Three ways to respond

  • More brokers, keep acks=1: The leader still acks before copying.
  • acks=all + min.insync.replicas: Ack only when the in-sync copies have it. (the fix)
  • acks=0 for speed: Doesn’t even wait for the leader.

The fix: acks=all + min.insync.replicas

acks=all waits for every in-sync replica. min.insync.replicas sets the floor; below it the producer gets an error instead of silent loss.

Remember: acks=all + min ISR = no silent loss.

More on Reliability problems

Keep learning

More courses

  • Jobs, linked to lessons — Browse jobs where every requirement links to the chapter that teaches it. See how ready you are, how long the gap takes to close, and which listings look stale.
  • Match a job post to courses — Paste a job post. Each skill is matched to a track here and put in learning order, foundations first.
  • React from open source with patterns — Patterns extracted from Material UI, Radix, React Aria, React Hook Form, Redux Toolkit, TanStack, and Next.js — not slides about hooks.
  • Database in depth — How a query becomes work. Indexes, isolation, locks, and the plans that explain why a page is slow — not an ORM tour.
  • System Design — Core concepts first (SQL vs NoSQL, CAP, indexing, replication, sharding), then designs grouped by what carries them: the database, Redis, Kafka, or many services.
  • Microservices — Microservice patterns one diagram at a time: how to split a monolith, how services talk, and how data stays consistent without distributed transactions.
  • Frontend system design — How a UI is sliced when it is a product, not a page: ownership of state, cache, routes, and what happens when the network lies.
  • TypeScript in depth — The type system as a design tool. Inference, narrowing, generics, and the errors that mean the model is wrong — not a catalog of utility types.
  • CSS in depth — See the box, then the page. Visual chapters from the box model through Flexbox surprises, Grid, selectors, and units, then backgrounds, shapes, and visual effects, each with a playground.
  • Accessibility — Foundations first (WCAG in plain words, semantic HTML, lists, alt text), then hands-on HTML labs, a full pass of WAI-ARIA 1.3, and a final fix-the-page challenge.
  • Docker — What an image is, why layers cache, and how containers find each other on a network.
  • Redis — Fifteen Redis patterns, one picture each: cache, session, lock, counter, rate limiter, queue, and when Redis is the wrong tool.