มีโอกาสไปแบ่งปันเรื่อง API design workshop จำนวน 2 วันซึ่งหลัก ๆ จะเป็น interface ของระบบต่าง ๆ ทั้ง REST API, gRPC และ messaging (Event-based)โดยจะเน้นในเรื่องของแนวปฏิบัติของการออกแบบที่ดีด้วยมุมมองของคนใช้งาน (consumer-based) มากกว่า provider-basedประกอบไปเรื่องต่าง ๆ ดังนี้
Read More…
จาก RFC 10008: The HTTP QUERY Method นั้นได้เพิ่ม QUERY method ใน HTTP เข้ามาเป็นสิ่งที่เพิ่มเข้ามาเพื่อแก้ไขปัญหาระหว่างการใช้งาน GET และ POST นั่นเองเพื่อให้เข้าใจ มาดูตัวอย่างของการใช้งาน QUERY method
Read More…
แนวทางในการออกแบบระบบงานแบบ distributed นั้นเรื่องของ Resilience pattern เป็นความรู้พื้นฐานที่สำคัญมาก ๆเพื่อให้ระบบมีความเสถียรและคงทนต่อความผิดพลาดมากยิ่งขึ้นทั้ง backoff, timeout, retry, idempotency และ circuit breaker แต่ถ้าจัดการไม่ดี ก็อาจจะทำให้เกิดปัญหาตามมาได้ยกตัวอย่างเช่น การ Retry หรือ ทำซ้ำ
Read More…
ปัญหาที่น่าสนใจเกี่ยวกับการเก็บข้อมูลการค้นหาว่าในแต่ละวันมีการค้นหาคำไหน จำนวนเท่าไรจึงลองฝึกออกแบบ key-value ใน redis ดูหน่อย ว่าต้องทำอย่างไรบ้าง ?โดยมีเป้าหมายเพื่อ มาเริ่มออกแบบเล่น ๆ กันหน่อย
Read More…
เห็นทาง Microsoft ได้ปล่อย TypeSpec ออกมาเป็นภาษาในการออกแบบ API (Application Programming Interface)อีกทั้งยังทำงานร่วมกับ OpenAPI, JSON Schema และ Protobuf ได้รูปแบบของภาษานั้นจะคล้าย ๆ กับ TypeScript และ C# นั่นเอง
Read More…
หลังจากการอ่านบทความเรื่อง Redesigning Pinterest’s Ad Serving Systems with Zero Downtimeเป็นการ redesign และ rewrite ระบบ Ads-serving platform ของ Pinterestเป็นระบบที่สร้างรายได้ให้บริษัทอย่างมากแต่ระบบที่ใช้งานมี technical debt เยอะ และ ซับซ้อนสูงมาก ๆทำให้ระบบมีปัญหาต่อการ scale อย่างมาก ล่มบ่อยรวมทั้ง business goal ที่เยอะขึ้น
Read More…
เห็นเครื่องมือชื่อว่า DrawDBเป็น editor สำหรับออกแบบ database นั่นเองสามารถใช้งานผ่านระบบ web application ได้เลยมี user interface ที่ใช้งานง่ายดี และ ฟรีด้วยสามารถนำมาติดตั้งที่ server ของเราได้เองเลย
Read More…
วันนี้มีโอกาสได้เข้าร่วมฟัง meetup เรื่อง MongoDB Data Modelingจากกลุ่ม MongoDB Thailand User Groupซึ่งมีหัวข้อต่าง ๆ เหล่านี้ ทำการสรุปจากสิ่งที่ได้ฟังดังนี้มาเริ่มกันเลย
Read More…
จากบทความเรื่อง Law of Demeter (LoD) ในการเขียน code นั้นเพื่อช่วยลด coupling ระหว่าง classหรือเป็นแนวคิดที่ช่วยให้เรามีความรู้เกี่ยวกับปลายทางที่จะเรียกให้น้อยลงทำให้มีอิสระมากยิ่งขึ้น โดยถ้าเรานำแนวคิดนี้ มาใช้กับการแยก service ด้วยก็น่าจะได้ผลดีเช่นกันนะ
Read More…
ปัญหาที่มักพบเจอบ่อยมาก ๆ ของระบบงานคือการแย่งใช้งาน resource ต่าง ๆ ที่มีจำกัด พร้อมกันผลที่ตามมาคือ ระบบงานทำงานไม่ถูกต้องเช่น เกิดการทำงานซ้ำ เป็นต้นหรือเราจะเรียกว่า race condition
Read More…