Architecture Archive

ว่าด้วยเรื่องของการ Retry

แนวทางในการออกแบบระบบงานแบบ distributed นั้นเรื่องของ Resilience pattern เป็นความรู้พื้นฐานที่สำคัญมาก ๆเพื่อให้ระบบมีความเสถียรและคงทนต่อความผิดพลาดมากยิ่งขึ้นทั้ง backoff, timeout, retry, idempotency และ circuit breaker แต่ถ้าจัดการไม่ดี ก็อาจจะทำให้เกิดปัญหาตามมาได้ยกตัวอย่างเช่น การ Retry หรือ ทำซ้ำ

Read More…

สิ่งที่น่าสนใจจากบทความเรื่อง The State of Java on Kubernetes 2026

จากบทความเรื่อง The State of Java on Kubernetes 2026บอกว่าการใช้งาน Java บน Kubernetes นั้นส่วนใหญ่ใช้งานไม่ถูกต้องหรือใช้งานด้วยค่า default จึงส่งผลต่อ performance และ ค่าใช้จ่ายสูงเกินความจำเป็นจากการสำรวจพบว่า บริษัทขนาดใหญ่ใช้ Java มากกว่า 68% โดยส่วนใหญ่จะใช้งาน Java 17 และ 21 เป็นหลัก

Read More…

บันทึกเรื่อง Soft delete ใน PostgreSQL database ไว้นิดหน่อย

เห็นใน feed มีพูดคุยเรื่องการ soft delete ข้อมูลใน databaseซึ่งคำถามแรกที่เกิดขึ้นมาคือ soft delete มันคืออะไร ?คำตอบคือ การไม่ลบข้อมูลจริง ๆ แต่ทำการ update ให้มี status=delete ไปแล้วตอนดึงข้อมูลก็ใช้ where clause นั่นเองแต่ว่าวิธีการนี้มีปัญหาอะไรที่ควรต้องรู้ไว้นิดหน่อย

Read More…

มาลองใช้งาน PageIndex สำหรับการพัฒนา RAG app กัน

ในการพัฒนา RAG app (Retrieval Augmented Generation) นั้นหนึ่งในขั้นตอนที่มีปัญหามากที่สุดคือ Retrievalหรือการดึงข้อมูลที่จำเป็นหรือเกี่ยวข้องนั่นเองโดยเทคนิคพื้นฐานมีขั้นตอนดัวนี้

Read More…

ฝึกออกแบบ key-value ใน redis สำหรับเก็บข้อมูลการค้นหา

ปัญหาที่น่าสนใจเกี่ยวกับการเก็บข้อมูลการค้นหาว่าในแต่ละวันมีการค้นหาคำไหน จำนวนเท่าไรจึงลองฝึกออกแบบ key-value ใน redis ดูหน่อย ว่าต้องทำอย่างไรบ้าง ?โดยมีเป้าหมายเพื่อ มาเริ่มออกแบบเล่น ๆ กันหน่อย

Read More…

การใช้งาน SKIP LOCKED ใน PostgreSQL database

จากการแบ่งปันความรู้ของ PostgreSQL database นั้นมีคำถามเกี่ยวกับการใช้งาน SKIP LOCKED ที่เพิ่มเข้ามาตั้งแต่ version 9.5 นั้น (2016)ว่าทำงานอย่างไร และ มี use case อะไรบ้าง

Read More…

ทำความรู้จักกับ Universal Commerce Protocol (UCP)

ทาง Google ได้ปล่อย Universal Commerce Protocol (UCP) ออกมามีเป้าหมายเพื่อเป็น open standard ของการ shopping onlineเพื่อเป็นตัวกลางในการเชื่อมต่อระหว่างผู้ซื้อ ผู้ขาย และ payment provider ต่าง ๆ ให้ซึ่งมีบริษัททั้ง e-commerce และ payment provider ต่าง ๆ มาร่วมมือกันทำให้ไม่ต้องมาสร้างสิ่งที่ซับซ้อนและซ้ำ ๆ กันนั่นเอง

Read More…

บันทึกการ monitoring ระบบงานแบบง่าย ๆ เพื่อให้เรารู้ปัญหาได้อย่างรวดเร็ว

ในการแบ่งปันความรู้เรื่องของ observability ของ service หรือ ระบบงานนั้นหนึ่งในเรื่องที่น่าสนใจคือ การตรวจสอบ และ การ alert เพื่อแจ้งเตือนการทำงานที่ไม่ปกติแบบอัตโนมัติเพื่อให้เรารู้ปัญหา และ จุดเกิดเหตุได้รวดเร็วยิ่งขึ้นจากนั้นก็จะช่วยให้เราแก้ไขได้รวดเร็วมากยิ่งขึ้นหรือช่วยปรับปรุงเรื่องของ MTTR (Mean Time to Recovery/Repair) ให้ดีขึ้น

Read More…

แนวทางในการออกแบบระบบเพื่อรองรับความผิดพลาดต่าง ๆ

จากการไปแบ่งปันความรู้เรื่องการออกแบบระบบพื้นฐานนั้นหนึ่งในเรื่องที่น่าสนใจคือ การออกแบบเพื่อรองรับความผิดพลาดต่าง ๆที่อาจจะเกิดขึ้นได้ในระบบของเรา หรือ design for failure นั่นเองว่ามีแนวทางอย่างไรบ้างเพื่อทำให้ระบบมีความน่าเชื่อถือมากยิ่งขึ้นจึงได้ทำการพูดคุย และ แนะนำแนวทางต่าง ๆ ที่น่าสนใจไว้ดังนี้

Read More…

มาลองใช้งาน PostgreSQL สำหรับเก็บ data caching ด้วย Unlogged table

เห็นบทความต่าง ๆ เกี่ยวกับ PostgreSQL ว่า เอามาจัดการเรื่อง caching ได้เลยซึ่งเอามาแทนที่ Memcached หรือ Redis ได้เลยแถมไม่ต้องไปจัดการข้อมูลแยกระบบ หรือ คนละ software ด้วยดังนั้น จึงมาลองใช้งานกันดูหน่อยว่าเป็นอย่างไร

Read More…