design Archive

สรุปการแบ่งปันเรื่อง API design workshop

มีโอกาสไปแบ่งปันเรื่อง API design workshop จำนวน 2 วันซึ่งหลัก ๆ จะเป็น interface ของระบบต่าง ๆ ทั้ง REST API, gRPC และ messaging (Event-based)โดยจะเน้นในเรื่องของแนวปฏิบัติของการออกแบบที่ดีด้วยมุมมองของคนใช้งาน (consumer-based) มากกว่า provider-basedประกอบไปเรื่องต่าง ๆ ดังนี้

Read More…

ทำความรู้จักกับ HTTP QUERY กันหน่อย

จาก RFC 10008: The HTTP QUERY Method นั้นได้เพิ่ม QUERY method ใน HTTP เข้ามาเป็นสิ่งที่เพิ่มเข้ามาเพื่อแก้ไขปัญหาระหว่างการใช้งาน GET และ POST นั่นเองเพื่อให้เข้าใจ มาดูตัวอย่างของการใช้งาน QUERY method

Read More…

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

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

Read More…

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

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

Read More…

ทำความรู้จักกับ TypeSpec สำหรับการออกแบบ API

เห็นทาง Microsoft ได้ปล่อย TypeSpec ออกมาเป็นภาษาในการออกแบบ API (Application Programming Interface)อีกทั้งยังทำงานร่วมกับ OpenAPI, JSON Schema และ Protobuf ได้รูปแบบของภาษานั้นจะคล้าย ๆ กับ TypeScript และ C# นั่นเอง

Read More…

สรุปจากการอ่านบทความเรื่อง Redesigning Pinterest’s Ad Serving Systems with Zero Downtime

หลังจากการอ่านบทความเรื่อง Redesigning Pinterest’s Ad Serving Systems with Zero Downtimeเป็นการ redesign และ rewrite ระบบ Ads-serving platform ของ Pinterestเป็นระบบที่สร้างรายได้ให้บริษัทอย่างมากแต่ระบบที่ใช้งานมี technical debt เยอะ และ ซับซ้อนสูงมาก ๆทำให้ระบบมีปัญหาต่อการ scale อย่างมาก ล่มบ่อยรวมทั้ง business goal ที่เยอะขึ้น

Read More…

แนะนำ DrawDB เครื่องมือออกแบบสำหรับ Relational Database แบบ online

เห็นเครื่องมือชื่อว่า DrawDBเป็น editor สำหรับออกแบบ database นั่นเองสามารถใช้งานผ่านระบบ web application ได้เลยมี user interface ที่ใช้งานง่ายดี และ ฟรีด้วยสามารถนำมาติดตั้งที่ server ของเราได้เองเลย

Read More…

สรุปจาก Meetup :: MongoDB Data Modeling จากกลุ่ม MongoDB Thailand User Group

วันนี้มีโอกาสได้เข้าร่วมฟัง meetup เรื่อง MongoDB Data Modelingจากกลุ่ม MongoDB Thailand User Groupซึ่งมีหัวข้อต่าง ๆ เหล่านี้ ทำการสรุปจากสิ่งที่ได้ฟังดังนี้มาเริ่มกันเลย

Read More…

ว่าด้วยเรื่องของ Law of Demeter ในการออกแบบ service

จากบทความเรื่อง Law of Demeter (LoD) ในการเขียน code นั้นเพื่อช่วยลด coupling ระหว่าง classหรือเป็นแนวคิดที่ช่วยให้เรามีความรู้เกี่ยวกับปลายทางที่จะเรียกให้น้อยลงทำให้มีอิสระมากยิ่งขึ้น โดยถ้าเรานำแนวคิดนี้ มาใช้กับการแยก service ด้วยก็น่าจะได้ผลดีเช่นกันนะ

Read More…

ปัญหา race condition ของระบบงาน จะแก้หรือบรรเทาอย่างไรดี ​?

ปัญหาที่มักพบเจอบ่อยมาก ๆ ของระบบงานคือการแย่งใช้งาน resource ต่าง ๆ ที่มีจำกัด พร้อมกันผลที่ตามมาคือ ระบบงานทำงานไม่ถูกต้องเช่น เกิดการทำงานซ้ำ เป็นต้นหรือเราจะเรียกว่า race condition

Read More…