The Data Side of Event Driven Architecture โดย Mark Richards

The Data Side of Event Driven Architecture โดย Mark Richards

เป็นอีกหนึ่ง Talk ที่ดี คุ้มค่าแก้การนั่งฟังครับ

เค้าเล่าได้เพลินดีว่าเวลาเราทำ Event-Driven Architecture (EDA) มันหน้าตาประมาณไหน แล้วการใช้ Pattern อย่าง Event Contract Patterns มีแนวคิดอย่างไร เราควรเลือกแบบไหน ซึ่งแน่นอนว่าไม่ว่าเลือกทางไหนก็จะต้องเจอ

Trade-off

เช่น เดียวกับการเลือก Database Topologies ว่าจะมีเครื่องเดียว มีแยกตาม Domain หรือแยกไปทุก Services เลย แต่ละแบบก็มี Trade-off เช่นเดียวกัน ต้องดูที่ Use Cases & Scenarios (Business) ว่าเราควรเลือกแบบไหนเพื่อแก้ปัญหา

ทีนี้ก็สนุกตรงที่ว่าเวลาทำ EDA ไปเรื่อย ๆ แล้วถ้าเราไม่ได้คอยระวังเรื่องการเรียกข้อมูลจากแต่ละ Services ที่ไม่ได้ผ่าน Event เช่น เรียก API ของ Service นั้นตรง ๆ เลย ซึ่งก็จะเกิด Synchronous Calls ขึ้น แล้วถ้ามีเยอะ ๆ เข้า สุดท้ายแล้วระบบเราจาก EDA ก็จะย้ายกลับไปเป็น Monolith ซะงั้น แถมวอดวายกว่าเดิม เพราะแยก Services ออกจากกันไปแล้ว..

เค้าก็เลยบอกว่าวิธีแก้ปัญหาแบบนี้ แทนที่จะเรียก API ของ Service ตรง ๆ ให้เกิด Synchronous Call แล้ว เรายังสามารถทำ EDA ได้อยู่คือให้ ทำ Data Replication หรือ In-Memory Replicated Caching ซึ่งบอกได้เลยว่าเวลาเอาไปทำจริงมันไม่ได้มีแค่เรื่อง Replicate ข้อมูลอย่างเดียว มันยังมีเรื่อง Operations ที่จะตามด้วยเช่นกันที่เราต้องคำนึงถึงว่าจะทำอย่างไรให้ทั้งระบบและข้อมูลมันมีความ (Eventually) Consistent ไปต่อได้อย่างยั่งยืน

ซึ่ง.. วิธีแก้ปัญหาที่ว่ามาด้านเราก็จะเห็นว่ามันมี Trade-off อีก! 😂 จะทำอะไรก็มี Trade-off ไปหมดเลย ซึ่งก็นั่นแหละครับ ชีวิตจริงก็เป็นแบบนั้น

แล้วเอาจริง ๆ ใน Talk นี้เราจะได้ยินแต่คำด้านบนนี้บ่อยครั้งมาก เราหนีไม่พ้นคำ ๆ นี้แน่ ๆ ตราบใดที่เรายังทำงานในสายงานด้านนี้กันอยู่ ดังนั้นเวลาเราจะตัดสินใจอะไรก็ทำให้แน่ใจว่าเราได้เอา Business มาประกบแล้ว เพื่อให้มั่นใจได้ว่าเราได้แก้ปัญหาทาง Business แล้วจริง ๆ สุดท้ายพอเลือกวิธีแก้ปัญหาแล้วก็อย่าลืมเขียน Architectural Decision Records ไว้ด้วยนะ 😎

สรุปว่าคำว่า Data Side ใน Talk นี้ของเค้าก็หมายถึงเรื่องแบบนี้แหละ เราต้องตระหนักไว้เสมอด้วยว่า EDA ไม่ได้เป็น Silver Bullet มันจะมีเรื่องที่ Challenges อีกเยอะเวลาที่เราหยิบมาทำจริง

โดยเฉพาะเรื่องข้อมูล

Read more

Distributed Decision Making

Distributed Decision Making

ในองค์กรใหญ่ ๆ อะไร ๆ ก็ช้าลงไปหมด และสิ่งที่ช้าที่สุดคือการตัดสินใจนี่แหละครับ การตัดสินใจกระจายอยู่ในทุก ๆ อณูขององค์กร องค์กรที่มีบรรยากาศสบาย ๆ ทุกคนรู้สึกปลอดภัย ใคร ๆ ก็จะกล้าตัดสินใจและกล้าออกความเห็น แต่พอองค์กรใหญ่

By Chokchai Phatharamalai
Risk Management: The Hard Test

Risk Management: The Hard Test

ท้ายหนังสือ Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency ของ Tom DeMarco ได้ให้เทคนิคใหม่ในการจัดการความเสี่ยงกับผม ทอมสอนว่าในการทำงานยุคปัจจุบัน งานมีความเสี่ยงกระจายอยู่เต็มไปหมด ซึ่งในความเสี่ยงนั้น เรามีโอกาสโชคดีและมีโอกาสโชคร้าย การจัดการความเสี่ยงเป็นสิ

By Chokchai Phatharamalai
วิธีปรับเวลาการนอน

วิธีปรับเวลาการนอน

ผมเดินทางกลับมาจาก Conference ของ Berkeley ที่ซานฟรานซิสโก เครื่องลงที่สนามบินสุวรรณภูมิประมาณ 22:30 น. กว่าจะถึงบ้านก็เกือบเที่ยงคืน ยังดีที่ขากลับไม่เหนื่อยเท่าขาไป เพราะลองซื้อหมอนรองคอจาก Duty Free ที่ซานฟรานซิสโกมาใช้ดู หมอนเป็นลายการ์ตูน มีรูปสะพาน

By Chokchai Phatharamalai
เร็วแค่ไหนก็ไร้ค่า ถ้าไปผิดทาง

เร็วแค่ไหนก็ไร้ค่า ถ้าไปผิดทาง

อีกบทเรียนที่ผมได้จากหนังสือ Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency ของ Tom DeMarco คือ ทำไมองค์กรใหญ่ ๆ ถึงยึดมั่นกับ Efficiency กันนัก Efficiency คืออะไร? Efficiency แปลว่า "ประสิทธิภาพ" ยกตัวอย่างเช่น

By Chokchai Phatharamalai