← กลับหน้าแรก

☕ 5-Min Tech Stories

เรื่องราวเทคโนโลยีที่อ่านจบได้ภายในเวลาพักกาแฟ

29 ตุลาคม 2026 · 4 นาที 30 วินาที

Zero-Copy: Kafka และ Nginx ส่งข้อมูลโดยไม่แตะ RAM

sendfile ลด Context Switch และการก็อปปี้ข้อมูล ทำให้การส่งไฟล์ปริมาณมหาศาลใช้ CPU น้อยลง

อ่านเรื่องนี้ →
28 ตุลาคม 2026 · 4 นาที 30 วินาที

C10K มหันตภัย: Apache สำลัก แต่ Nginx ยิ้มรับด้วย epoll

จาก select/poll สู่ Event Loop ที่รองรับการเชื่อมต่อพร้อมกันจำนวนมหาศาล

อ่านเรื่องนี้ →
27 ตุลาคม 2026 · 4 นาที 30 วินาที

Write Skew อาถรรพ์: Repeatable Read เอาไม่อยู่

Transaction สองชุดแก้คนละแถว แต่ทำลายกฎเหล็กเดียวกันจนห้องฉุกเฉินไม่มีหมอ

อ่านเรื่องนี้ →
26 ตุลาคม 2026 · 4 นาที 30 วินาที

กับดัก Health Check: Kubernetes สั่งฆ่า Pod ตัวเอง

Deep Health Check ผูกสถานะ Liveness เข้ากับ Database จนเกิด Restart Storm ทั้งคลัสเตอร์

อ่านเรื่องนี้ →
25 ตุลาคม 2026 · 4 นาที 30 วินาที

Retry Storm: ความพยายามยิงซ้ำกลายเป็น DDoS ตัวเอง

Payment Service สะดุด 2 วินาที แต่ Retry พร้อมเพรียงขยายทราฟฟิกจน Cascading Failure

อ่านเรื่องนี้ →
24 ตุลาคม 2026 · 4 นาที 30 วินาที

ทำ Index แล้ว Database ยังเดิน Sequential Scan

Query ใช้ฟังก์ชันบนคอลัมน์หรือ selectivity ต่ำเกินไป จน Planner ทิ้ง B-Tree แล้วไล่ทั้งตาราง

อ่านเรื่องนี้ →
23 ตุลาคม 2026 · 4 นาที 30 วินาที

2PC vs Saga: ตัดเงินแล้วแต่ตัดสต็อกไม่ผ่าน

Two-Phase Commit ล็อกทรัพยากรข้ามเซอร์วิสจนระบบกอดคอกันตาย — Saga แยก commit แล้วชดเชยทีหลัง

อ่านเรื่องนี้ →
22 ตุลาคม 2026 · 4 นาที 30 วินาที

SSRF: ดึงรูปโปรไฟล์จาก URL แล้วแฮกเกอร์สูบกุญแจ AWS

ฟีเจอร์ดึงรูปจาก URL กลายเป็นช่องทางแอบยิงเข้า Cloud Metadata แล้วดูด Access Key ทั้งคลาวด์

อ่านเรื่องนี้ →
21 ตุลาคม 2026 · 4 นาที 30 วินาที

Thundering Herd: คีย์หมดอายุ 1 วินาที แล้วคำขอหมื่นรายการรุม DB

คีย์แบนเนอร์ Flash Sale หมดอายุพร้อมกัน แล้วคำขอ 15,000 รายการวิ่งลง Database ในมิลลิวินาทีเดียว

อ่านเรื่องนี้ →
20 ตุลาคม 2026 · 4 นาที 25 วินาที

Cache Avalanche: TTL เท่ากันคือกับดักระเบิดถล่ม Database

คีย์แสนรายการหมดอายุวินาทีเดียวกัน แล้วทราฟฟิกพุ่งลง PostgreSQL พร้อมกัน

อ่านเรื่องนี้ →
19 ตุลาคม 2026 · 4 นาที 20 วินาที

คำสาป log.info(): บรรทัดเดียวทำแอปอืดจนติดเบรกเกอร์

เธรดทางธุรกิจไปรอเขียนดิสก์และท่อ stdout 64KB เต็มจน write() บล็อกทั้งก้อน

อ่านเรื่องนี้ →
18 ตุลาคม 2026 · 4 นาที 30 วินาที

Exactly-Once ไม่มีอยู่จริงบนเครือข่าย

ข้อความข้ามเน็ตการันตีได้แค่อย่างน้อยหนึ่งครั้ง ส่วนการไม่ประมวลผลซ้ำเป็นหน้าที่ของ idempotency

อ่านเรื่องนี้ →
17 ตุลาคม 2026 · 4 นาที 25 วินาที

Deadlock: โอนสลับฝั่งแล้วฐานข้อมูลยิงตัวประกัน

สอง transaction ล็อกคนละแถวในลำดับกลับกัน จนฐานข้อมูลต้องฆ่าตัวหนึ่งเพื่อคลายวงจร

อ่านเรื่องนี้ →
16 ตุลาคม 2026 · 4 นาที 25 วินาที

TIME_WAIT Storm: พอร์ตขาออกหมดทั้งที่ CPU ยังว่าง

ยิง HTTP ใหม่ทุกคำขอจน Ephemeral Port ติด TIME_WAIT แล้ว Linux ตอบ Cannot assign requested address

อ่านเรื่องนี้ →
15 ตุลาคม 2026 · 4 นาที 30 วินาที

OOMKilled: Heap ยังว่าง แต่ Kubernetes ยิง Pod ทิ้ง

Exit 137 คือ SIGKILL จาก OOM Killer เมื่อหน่วยความจำรวมชนเพดาน cgroup ทั้งที่กราฟ JVM Heap ยังไม่เต็ม

อ่านเรื่องนี้ →
14 ตุลาคม 2026 · 4 นาที 30 วินาที

Kafka Rebalance Storm: ข้อความช้าหนึ่งก้อนหยุดทั้งกลุ่ม

Consumer ช้าเกิน max.poll.interval.ms ถูกเตะออก แล้ว Eager Rebalance หยุดงานทั้งบริษัท — ลด poll records และใช้ CooperativeStickyAssignor

อ่านเรื่องนี้ →
13 ตุลาคม 2026 · 4 นาที 25 วินาที

PostgreSQL Dead Tuples: ลบสิบล้านแถวแต่ดิสก์ไม่คืน

DELETE ไม่ลบออกจากหน้าดิสก์ — VACUUM แค่ทำเครื่องหมาย Free Space, VACUUM FULL หรือ pg_repack ถึงคืนพื้นที่ OS

อ่านเรื่องนี้ →
12 ตุลาคม 2026 · 4 นาที 20 วินาที

Replication Lag: จ่ายเงินแล้วประวัติว่างเปล่า

Write ลง Master แล้วยิงอ่าน Replica ก่อน Binlog ตามทัน — ล็อกอ่าน Master ชั่วคราวหลัง Write

อ่านเรื่องนี้ →
11 ตุลาคม 2026 · 4 นาที 25 วินาที

Cache Penetration: ของไม่มีจริงเจาะ Redis ถล่ม Database

ID ขยะพุ่งทะลุ cache เพราะไม่เคยแคชค่าว่าง — อุดด้วย Null TTL และ Bloom Filter

อ่านเรื่องนี้ →
10 ตุลาคม 2026 · 4 นาที 20 วินาที

Graceful Shutdown: Deploy ตัด Request กลางอากาศ

SIGTERM ปิด Tomcat และ DB pool กลาง transaction — เปิด graceful shutdown แล้วจูน terminationGracePeriodSeconds

อ่านเรื่องนี้ →
9 ตุลาคม 2026 · 4 นาที 20 วินาที

Goroutine Leak: วิญญาณเร่ร่อนสูบ RAM จน Server ดับ

Timeout ทิ้ง sender บน unbuffered channel — GC ไม่เก็บ goroutine ที่ยังบล็อกรอ

อ่านเรื่องนี้ →
8 ตุลาคม 2026 · 4 นาที 20 วินาที

The BigKey Trap: Key เดียวทำ Redis อัมพาต

DEL บน list ครึ่งล้านสมาชิกบล็อก event loop — ใช้ UNLINK และหั่นเป็น bucket

อ่านเรื่องนี้ →
7 ตุลาคม 2026 · 4 นาที 15 วินาที

กับดัก Go Channel: ส่งลงท่อแล้วโปรแกรม Deadlock

Unbuffered channel คือการยื่นของมือต่อมือ — ส่งและรับใน goroutine เดียวกันแล้ว Runtime สั่งปิดระบบ

อ่านเรื่องนี้ →
6 ตุลาคม 2026 · 4 นาที 20 วินาที

ภาพลวงตา Connection Pool: ท่อ 10 ช่องเร็วกว่า 1,000

ยิ่งเปิด HikariCP เยอะ CPU ของ Database ยิ่งสลับงานจนนิ่ง — จำกัด pool ตามจำนวนคอร์

อ่านเรื่องนี้ →
5 ตุลาคม 2026 · 4 นาที 20 วินาที

มนตร์วิเศษของ WAL: ทำไม Database ไม่เซฟลงตารางตรงๆ

Write-Ahead Logging จดไดอารีต่อท้ายแถวก่อน แล้วค่อยกวาด Dirty Pages ลงตารางจริง

อ่านเรื่องนี้ →
4 ตุลาคม 2026 · 4 นาที 20 วินาที

Retry Storm: เมื่อความพยายามอันแสนดี กลายเป็นปืนกล DDoS

Cascading retry และคลื่นยิงพร้อมกันที่ขยายความล้มเหลว — ดับด้วย backoff, jitter และ circuit breaker

อ่านเรื่องนี้ →
3 ตุลาคม 2026 · 4 นาที 20 วินาที

DNS Caching Trap: ทำไม JVM ถึงฝังใจกับ IP เก่า

InetAddress ที่แคช DNS ตลอดกาล ทำให้แอปยิง IP หลุมศพหลังย้ายคลาวด์

อ่านเรื่องนี้ →
2 ตุลาคม 2026 · 4 นาที 25 วินาที

UUIDv4 vs Auto-Increment: B-Tree ที่ถูกสุ่มพัง

Page Split จาก UUID สุ่ม และเหตุผลที่ต้องย้ายไป UUIDv7 / ULID / TSID

อ่านเรื่องนี้ →
1 ตุลาคม 2026 · 4 นาที 20 วินาที

รหัสลับ Trace ID: ตามรอยคนร้ายในป่า Microservices

Trace ID, Span ID และ W3C traceparent ที่เปลี่ยนการ grep 15 เครื่องให้เป็นภาพ waterfall

อ่านเรื่องนี้ →
30 กันยายน 2026 · 4 นาที 30 วินาที

The Dual-Write Problem: เซฟลง DB แล้วยิงเข้า Kafka

ทำไมสองคำสั่งต่อกันข้ามระบบถึงไม่ atomic และ Transactional Outbox Pattern คืนความจริงให้ Event-Driven ได้

อ่านเรื่องนี้ →
29 กันยายน 2026 · 4 นาที 25 วินาที

มนตร์ดำ JIT Compiler: ทำไม Java เพิ่งเปิดถึงเต่า แต่ยิ่งรันยิ่งเร็ว?

แกะ Interpreter, Hotspot Profiling และ JIT ที่ทำให้ JVM วอร์มเครื่องก่อนพุ่งความเร็วระดับ native

อ่านเรื่องนี้ →
28 กันยายน 2026 · 4 นาที 20 วินาที

CAP Theorem: สามเหลี่ยมพิศวง ที่เลือกได้แค่ 2 อย่าง

เมื่อสายเน็ตขาด คุณจะยอมให้ข้อมูลไม่เป๊ะ (AP) หรือยอมให้หน้าเว็บขัดข้องเพื่อรักษาความถูกต้อง (CP)

อ่านเรื่องนี้ →
27 กันยายน 2026 · 4 นาที 20 วินาที

Double-Spending: เมื่อกดจ่ายเงินซ้ำแล้วได้ของฟรี

แกะ Race Condition จาก Check-Then-Act และวิธีล็อกธุรกรรมด้วย Atomic Update กับ Idempotency Key

อ่านเรื่องนี้ →
26 กันยายน 2026 · 4 นาที 15 วินาที

เมื่อ 0.1 + 0.2 ไม่เท่ากับ 0.3

เข้าใจ IEEE 754, ความคลาดเคลื่อนของ floating point และวิธีคำนวณเงินด้วย BigDecimal อย่างปลอดภัย

อ่านเรื่องนี้ →
25 กันยายน 2026 · 5 นาที

วันที่ Kafka Consumers พากันพักดื่มกาแฟ

แกะรอย rebalance storm จาก batch ที่ใหญ่เกินไป และ timeout ที่เปลี่ยนความช้าให้กลายเป็น production avalanche

อ่านเรื่องนี้ →
24 กันยายน 2026 · 4 นาที 15 วินาที

Thundering Herd และ Cache Stampede

ป้องกัน cache miss พร้อมกันไม่ให้ถล่มฐานข้อมูลด้วย distributed lock และ TTL jitter

อ่านเรื่องนี้ →
23 กันยายน 2026 · 4 นาที 15 วินาที

ทำไม Spring Transaction ไม่ Rollback?

เข้าใจ Dynamic Proxy, self-invocation และกฎ rollback ของ checked กับ unchecked exceptions

อ่านเรื่องนี้ →
22 กันยายน 2026 · 4 นาที 30 วินาที

False Sharing: ทำไม CPU แย่งกันเอง?

เข้าใจ Cache Line, cache invalidation และสาเหตุที่ตัวแปรคนละตัวทำให้หลายคอร์ช้าลงได้

อ่านเรื่องนี้ →
21 กันยายน 2026 · 4 นาที 20 วินาที

หายนะ N+1 Query: เมื่อ ORM ยิง SQL ถล่ม Database

เข้าใจต้นเหตุของ N+1 Query และวิธีรวมข้อมูลด้วย JOIN FETCH หรือ EntityGraph ให้จบในครั้งเดียว

อ่านเรื่องนี้ →
20 กันยายน 2026 · 4 นาที 30 วินาที

JasperReports ทำ Server ล่มได้อย่างไร?

สำรวจปัญหา JasperPrint ที่กิน JVM heap และกลไก Virtualizer สำหรับรายงานขนาดใหญ่

อ่านเรื่องนี้ →
19 กันยายน 2026 · 4 นาที 15 วินาที

ปรัชญา Go: ทำไมไม่มี try-catch?

เข้าใจแนวคิด Errors Are Values และเหตุผลที่ Go เลือกการจัดการ error แบบชัดเจนแทน hidden control flow

อ่านเรื่องนี้ →
18 กันยายน 2026 · 4 นาที 20 วินาที

ปรัชญา Redis: Thread เดียว แต่เสิร์ฟได้เป็นแสนรอบ

เข้าใจว่า in-memory operations และ I/O multiplexing ทำให้ Redis event loop ทำงานเร็วได้อย่างไร

อ่านเรื่องนี้ →
17 กันยายน 2026 · 4 นาที 40 วินาที

มนตร์ดำ Apache Kafka: เขียน Disk แต่ทำไมถึงเร็ว?

เจาะแนวคิด sequential I/O, append-only logs, page cache และ zero-copy ที่ทำให้ Kafka รองรับข้อความมหาศาลได้

อ่านเรื่องนี้ →
16 กันยายน 2026 · 4 นาที 30 วินาที

Connection Pool: ทำไมต้องสร้างสะพานใหม่ทุกครั้ง?

เข้าใจต้นทุนของการเปิด Database connection และเหตุผลที่ Connection Pool กับ HikariCP ช่วยให้ระบบตอบสนองได้เร็วขึ้น

อ่านเรื่องนี้ →
15 กันยายน 2026 · 4 นาที 15 วินาที

Coroutine vs Thread: สั่งพนักงานยืนรอ หรือจ้างนินจาสลับโต๊ะ?

ทำความเข้าใจงานแบบ blocking และ non-blocking ผ่านอุปมาร้านอาหาร พร้อมดูว่า Coroutine ใช้ Thread อย่างคุ้มค่าได้อย่างไร

อ่านเรื่องนี้ →
14 กันยายน 2026 · 4 นาที 45 วินาที

Log4Shell Apocalypse: เมื่อการพ่น Log กลายเป็นประตูนรก

ย้อนรอยช่องโหว่ CVSS 10.0 ที่ทำให้ข้อความจากผู้ใช้เรียกโค้ดระยะไกลผ่าน Log4j, JNDI และ LDAP ได้

อ่านเรื่องนี้ →
13 กันยายน 2026 · 4 นาที 30 วินาที

ภาพลวงตาของ Garbage Collector: ทำไมแรมยังเต็ม?

ทำความเข้าใจ GC Roots, object reachability และสาเหตุที่ static collections หรือ listeners ทำให้เกิด Memory Leak ได้

อ่านเรื่องนี้ →
12 กันยายน 2026 · 4 นาที

จาก XML Hell สู่เวทมนตร์ของ Spring Boot

ย้อนรอยยุคที่ Java Enterprise ต้องใช้ XML หลายร้อยบรรทัด และกลไก Auto-Configuration ที่เปลี่ยนทุกอย่าง

อ่านเรื่องนี้ →
11 กันยายน 2026 · 4 นาที 30 วินาที

มหากาพย์ NullPointerException: ความผิดพลาดพันล้านดอลลาร์

ย้อนรอยต้นกำเนิดของ null และดูว่า Kotlin ย้ายปัญหาจาก Runtime Exception ไปเป็น Compile Error ได้อย่างไร

อ่านเรื่องนี้ →