A Tier-0 multi-region Kafka cluster needs three regions, a replication factor of 6, min.insync.replicas=3, and acks=all to keep accepting writes when an entire region fails. With six replicas spread across regions, losing one region drops the in-sync set to four, still above the minISR of three, so writes continue. A second broker restart during the outage can drop ISR to three without halting writes, but any further drop stops them. KRaft controllers need separate quorum planning: a 2+2+1 distribution across five controllers tolerates one region loss, and Kafka 3.9's dynamic quorum (KIP-853) lets you remove failed controllers without restarting the cluster. WAN degradation between healthy regions can be more dangerous than a hard outage, since replication lag can push ISR below minISR and halt writes under CAP theorem trade-offs. Recovery of a failed region can be controlled by throttling replica catch-up, at the cost of a longer recovery time.
Source: https://www.sitepoint.com/what-actually-happens-when-a-kafka-region-fails. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000 DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try itEvent-driven systems only agree eventually. Here’s how we check they actually got there: deadlines, data ownership, and a reconciliation job that walks the floor.
In this article, we’ll look at the architecture behind Scion.
An API can save an order and crash before publishing the message that tells other services about it.
Event-driven architecture (EDA) phổ biến nhưng tiềm nhiều thách thức trong production environment. Vấn đề truy xuất lỗi (tracing) trở nên phức tạp khi sự kiện (event) đi qua nhiều service khác nhau, đòi hỏi hệ thống phân tích log tập trung như ELK stack. Hàng đợi tin hỏi (dead letter queues) dễ bị đầy nếu không implement validation logic kỹ càng, dẫn đến mất dữ kiện quan trọng. Sự không nhất quán cuối cùng (eventual consistency) gây race condition khi nhiều consumer xử lý cùng event đồng thời. Các EDA system cần thiết kế event schema versioning và comprehensive testing framework với Contract Testing để đảm bảo reliability khi số lượng service tăng lên.
Bài viết này giúp lập trình viên nhận diện và giải quyết các vấn đề phổ biến trong kiến trúc hướng sự kiện như tracing, dead letter queues, tính nhất quán cuối cùng và testing.
Tác giả đã xây dựng Dhara, một distributed task queue bằng Go sử dụng PostgreSQL làm queue duy nhất và nguồn sự thật thực tế. Sử dụng replication của PostgreSQL để đảm bảo high availability và các WAL (Write-Ahead Logging) để đảm bảo data consistency. Cấu trúc hiện tại hỗ trợ tới 5,000 tasks mỗi giây với độ trễ chỉ 10ms. Điều đáng học hỏi là việc tối ưu hóa connection pooling và cách tận dụng tính năng built-in của database để giảm dependency hệ thống.
Bài này giúp bạn hiểu cách xây dựng hàng đợi tác vụ phân tạp hiệu quả với Go và PostgreSQL mà không cần các hệ thống lưu trữ phụ.
Data-driven architecture tập trung vào nguồn dữ liệu chung (database, data warehouse) mà các service truy vấn, trong khi event-driven dựa trên message broadcast khi có sự kiện, được các service độc lập tiêu thụ. Data-driven coupling chặt hơn trong khi event-driven cho phép loose coupling nhưng tăng độ phức tạp hệ thống khi số lượng events lớn. Data-driven phù hợp cho analytics, ML và ứng dụng đơn giản, còn event-driven tối ưu cho features thời gian thực, microservices và scaling không đồng đều. Hai phương pháp này thực chất bổ trợ chứ không cạnh tranh nhau - câu hỏi quyết định nên bắt đầu đơn giản và chỉ thêm events khi thực sự cần thiết.
Bài viết này giúp lập trình viên lựa chọn kiến trúc phù hợp giữa data-driven và event-driven dựa trên nhu cầu cụ thể của dự án.
Database generated IDs can impact your system design. Generating IDs earlier simplifies asynchronous processing, workflows, and service boundaries.
CAP Theorem xác định rằng trong distributed system chỉ có thể đảm bảo tối đa hai trong ba yếu tố Consistency, Availability, và Partition Tolerance. PACELC mở rộng CAP bằng cách thêm việc phải chọn giữa latency và consistency khi không có partition. Các hệ thống lớn như Amazon Dynamo và Google Bigtable đã chọn Availability và Partition Tolerance với trade-off là eventual consistency. Ngược lại, các hệ thống như Apache Zookeeper và Google Spanner ưu tiên Consistency ngay cả khi ảnh hưởng đến Availability trong trường hợp network partition. Việc hiểu rõ hai định lý này giúp lập trình viên đưa ra quyết định thiết kế phù hợp dựa trên yêu cầu cụ thể của ứng dụng.
Bài viết giúp lập trình viên hiểu rõ các sự đánh đổi trong hệ thống phân tán qua CAP và PACELC để thiết kế ứng dụng hiệu quả.
Loading comments…