แนวทางของ Figma ในการแก้ไขแบบร่วมกันแบบเรียลไทม์ยังคงสร้างความสนใจอย่างมากในชุมชนนักพัฒนา โดยการอภิปรายเน้นย้ำทั้งความสำเร็จทางเทคนิคและภูมิทัศน์ที่เปลี่ยนแปลงของเครื่องมือซิงโครไนเซชัน multiplayer แพลตฟอร์มดีไซน์นี้ตัดสินใจสร้างโซลูชันแบบกำหนดเองโดยใช้ CRDTs (Conflict-free Replicated Data Types) แทนการใช้ Operational Transformation แบบดั้งเดิม ซึ่งกลายเป็นจุดอ้างอิงสำหรับการทำความเข้าใจสถาปัตยกรรมซอฟต์แวร์ร่วมสมัยสมัยใหม่
การอภิปรายทางเทคนิคเผยให้เห็นว่า Figma ละทิ้งแนวทางดั้งเดิมเมื่อสร้างฟังก์ชัน multiplayer เมื่อสี่ปีที่แล้ว พวกเขาปฏิเสธทั้งฟีเจอร์ stateful มาตรฐานและ Operational Transformation ซึ่งเป็นอัลกอริทึม multiplayer ที่ได้รับความนิยมในขณะนั้น โดยพบว่า OT ป้องกันไม่ให้เครื่องมือดีไซน์ของพวกเขาตอบสนองได้ในขณะที่ยังคงความสอดคล้อง แทนที่จะเป็นเช่นนั้น พวกเขาเลือก CRDTs เป็นโซลูชันที่ง่ายกว่าสำหรับพื้นที่ปัญหาเฉพาะของพวกเขา
การตัดสินใจทางเทคนิคที่สำคัญในระบบ Multiplayer ของ Figma:
- ยกเลิกการใช้ Operational Transformation (OT) และเปลี่ยนมาใช้ CRDTs แทน
- สร้างโซลูชันแบบกำหนดเองแทนการใช้ไลบรารีที่มีอยู่
- พัฒนา WebGL renderer แบบกำหนดเองเพื่อประสิทธิภาพ
- ใช้แนวทาง state-based ที่ให้ผลลัพธ์ที่สอดคล้องกัน
- เซิร์ฟเวอร์ติดตามค่าล่าสุดจากไคลเอนต์เพื่อแก้ไขความขัดแย้ง
สถานะปัจจุบันของเทคโนโลยีการทำงานร่วมกันแบบเรียลไทม์
การอภิปรายของชุมชนเผยให้เห็นว่าการสร้างการทำงานร่วมกันแบบเรียลไทม์ยังคงเป็นเรื่องท้าทายแม้ในปัจจุบัน อย่างไรก็ตาม ภูมิทัศน์ได้พัฒนาไปอย่างมากนับตั้งแต่การใช้งานเริ่มแรกของ Figma sync engines ใหม่หลายตัวได้เกิดขึ้นเพื่อแก้ไขปัญหานี้ รวมถึง Rocicorp Zero และ Electric SQL แม้ว่าพื้นที่นี้จะยังไม่แออัดด้วยตัวเลือก เครื่องมือเหล่านี้มีเป้าหมายเพื่อทำให้ฟีเจอร์ร่วมกันเข้าถึงได้ง่ายขึ้นสำหรับนักพัฒนาที่อาจจะต่อสู้กับความซับซ้อนของการใช้งาน CRDTs ตั้งแต่เริ่มต้น
นักพัฒนาบางคนชี้ไปที่โซลูชันที่มีอยู่แล้วมาหลายปี ShareDB และ Racer ตัวอย่างเช่น ให้ synchronized snapshots, conflict resolution, diffs และ change tracking มากว่าทศวรรษแล้ว นอกจากนี้ แพลตฟอร์มอย่าง Liveblocks.io ได้ทำงานเพื่อทำให้การทำงานร่วมกัน multiplayer ง่ายและเข้าถึงได้ โดยมีการมุ่งเน้นหลักที่ความสามารถในการแก้ไข multiplayer
โซลูชันเฉพาะเฟรมเวิร์กและเครื่องมือที่เกิดขึ้นใหม่
การอภิปรายยังเน้นแนวทางเฉพาะเฟรมเวิร์กสำหรับการทำงานร่วมกันแบบเรียลไทม์ Phoenix LiveView ของ Elixir ร่วมกับ PubSub ครอบคลุมพื้นฐานการทำงานร่วมกันหลายอย่างทันที แม้ว่านักพัฒนาจะสังเกตว่าฟังก์ชัน broadcast ไม่เหมือนกับการซิงโครไนเซชันที่แท้จริง และ LiveView ไม่เหมาะสำหรับแอปพลิเคชันทั้งหมด Phoenix เพิ่งเพิ่ม Phoenix.Sync ซึ่งเป็นไลบรารี sync engine ที่ออกแบบมาเพื่อแก้ไขข้อจำกัดเหล่านี้โดยเฉพาะ
ตอนนี้มี sync engines สองสามตัวที่แก้ไขปัญหานี้ Rocicorp Zero, Electric SQL และอีกหนึ่งหรือสองตัว ไม่ใช่พื้นที่ที่แออัดเลย แต่ตอนนี้มีตัวเลือกแล้ว
ชุมชนตระหนักว่าแม้เทคโนโลยีพื้นฐานสำหรับการทำงานร่วมกันแบบเรียลไทม์จะมีอยู่มาหลายทศวรรษแล้ว การใช้งานและการเข้าถึงโซลูชันเหล่านี้ยังคงปรับปรุงต่อไป วิวัฒนาการที่ต่อเนื่องนี้บ่งบอกว่าสิ่งที่เคยเป็นความท้าทายทางเทคนิคเฉพาะทางสูงกำลังค่อยๆ กลายเป็นเรื่องที่เข้าถึงได้ง่ายขึ้นสำหรับนักพัฒนาในวงกว้าง
โซลูชันการทำงานร่วมกันแบบเรียลไทม์ทางเลือกอื่น:
- Rocicorp Zero - เครื่องมือซิงค์สมัยใหม่
- Electric SQL - แพลตฟอร์มซิงโครไนซ์ฐานข้อมูล
- Liveblocks.io - แพลตฟอร์มการทำงานร่วมกันแบบหลายผู้ใช้
- ShareDB/Racer - โซลูชันที่มีอายุ 10+ ปี พร้อมระบบสแนปช็อตและการแก้ไขข้อขัดแย้ง
- Phoenix LiveView + PubSub - โซลูชันเฟรมเวิร์ก Elixir
- Phoenix.Sync - ไลบรารีเครื่องมือซิงค์ที่เพิ่งเพิ่มเข้ามา
![]() |
---|
การแสดงภาพโครงสร้างเครือข่ายที่แสดงการเชื่อมต่อที่เกี่ยวข้องกับเทคโนโลยีการซิงโครไนซ์แบบทำงานร่วมกัน |
มุมมองของชุมชนเกี่ยวกับผลกระทบของ Figma
น่าสนใจที่การอภิปรายขยายไปเกินกว่าการพิจารณาทางเทคนิคล้วนๆ เพื่อตรวจสอบผลกระทบที่กว้างขึ้นของ Figma ต่ออุตสาหกรรมดีไซน์ สมาชิกชุมชนบางคนแสดงความกังวลเกี่ยวกับอิทธิพลของ Figma ต่อรูปแบบดีไซน์และแนวปฏิบัติประสบการณ์ผู้ใช้ โดยแนะนำว่าอินเทอร์เฟซของแพลตฟอร์มเองได้กลายเป็นจุดอ้างอิงสำหรับนักออกแบบ ซึ่งอาจทำให้แนวทางดีไซน์บางอย่างคงอยู่ต่อไป
การสนทนายังสัมผัสถึงต้นกำเนิดของเทคโนโลยี Figma โดยบางคนแนะนำว่าบริษัทเริ่มแรกมุ่งเน้นไปที่การพัฒนา JavaScript engine สำหรับการทำงานร่วมกันแบบเรียลไทม์ และต่อมาพบว่าซอฟต์แวร์ดีไซน์เป็นแอปพลิเคชันที่เหมาะสำหรับเทคโนโลยีนี้ มุมมองนี้มองความสำเร็จของ Figma ว่าเป็นเรื่องของการจับเวลาและการเข้ากับตลาดมากเท่ากับนวัตกรรมทางเทคนิค
ความสนใจอย่างต่อเนื่องของชุมชนในเทคโนโลยี multiplayer ของ Figma แสดงให้เห็นถึงความเกี่ยวข้องอย่างต่อเนื่องของการตัดสินใจทางเทคนิคของพวกเขาและความท้าทายที่กว้างขึ้นในการสร้างซอฟต์แวร์ร่วมกันที่ตอบสนองได้ซึ่งสามารถจัดการกับผู้ใช้หลายคนที่แก้ไขเอกสารเดียวกันพร้อมกัน