ข้ามไปยังเนื้อหา

Kafka — From Zero to Hero

Apache Kafka คือ distributed event streaming platform เป็น log ที่ทนทานและ replay ได้ ให้ producer หลายตัวเขียนเข้ามา และ consumer หลายตัวอ่านออกไป โดยต่างคนต่างอ่านตามจังหวะของตัวเอง คอร์สนี้เขียน สำหรับ developer คนที่ต้องเขียน producer กับ consumer เอง ต้องเข้าใจ delivery guarantee และต้องทำให้ Kafka ทำงานถูกต้องบน production

คอร์สนี้อิงกับ Kafka 4.x ซึ่งรันด้วย KRaft mode อย่างเดียว โดย ZooKeeper ถูกถอดออกไปหมดแล้ว ตัวอย่าง CLI ทุกอันใช้ --bootstrap-server และตัวอย่าง client เป็น TypeScript ด้วย KafkaJS — Node.js client ที่คนใช้กันแพร่หลาย และ API ของตัวเองยังถูก implement โดย client ทางการของ Confluent อย่าง @confluentinc/kafka-javascript ด้วย (ส่วน Kafka Streams ที่พูดถึงทีหลัง เป็น library บน JVM เท่านั้น จึงแสดงเป็น Java)

Moduleสิ่งที่จะได้เรียน
Foundations & the LogKafka คืออะไร, log แบบ append-only, broker/topic/partition/offset และ KRaft
Topics, Partitions & Replicationการทำ partition กับ ordering, key, replication กับ ISR, retention กับ log compaction
Producing Messagesproducer API, acks กับ durability, idempotent producer, batching กับ compression
Consuming & Consumer Groupspoll loop, consumer group กับ rebalancing (KIP-848), offset commit, delivery semantics
Delivery Semantics & Transactionsguarantee แบบ end-to-end, transaction, exactly-once processing, การจัดการ error
Streams, Connect & Schema RegistrySchema Registry, Kafka Connect, Kafka Streams และการเลือก processing layer
Operations & Productionรัน Kafka บนเครื่อง, monitoring กับ consumer lag, tuning และ security

แต่ละบทเปิดด้วยไอเดียในหนึ่งประโยค แล้วโชว์โค้ด client กับ CLI ของจริง มีไดอะแกรมของชิ้นส่วนที่เกี่ยวข้อง และปิดท้ายด้วยสรุปหนึ่งบรรทัดพร้อม quiz สั้น ๆ อ่านไล่จากบนลงล่าง เพราะ module หลัง ๆ จะถือว่าคุณรู้ศัพท์อย่าง log, partition และ offset จากบทแรก ๆ เหล่านี้แล้ว