เฟรมเวิร์ก Mosaic ดึงดูดความสนใจนักพัฒนาด้วยสถาปัตยกรรม Backend แบบ Response-First

ทีมชุมชน BigGo
เฟรมเวิร์ก Mosaic ดึงดูดความสนใจนักพัฒนาด้วยสถาปัตยกรรม Backend แบบ Response-First

Mosaic เฟรมเวิร์กใหม่สำหรับการพัฒนา backend ด้วยภาษา Kotlin กำลังสร้างการสนทนาในหมู่นักพัฒนาด้วยแนวทางที่เป็นเอกลักษณ์ในการจัดการการประสานงานข้อมูลที่ซับซ้อน เฟรมเวิร์กนี้นำเสนอปรัชญาการออกแบบแบบ response-first ที่พลิกการพัฒนาแบบ database-driven แบบดั้งเดิมหัวกลับหาง โดยมุ่งเน้นไปที่สิ่งที่แอปพลิเคชันต้องการส่งคืนมากกว่าวิธีการดึงข้อมูล

คุณสมบัติหลักของเฟรมเวิร์ก:

  • การประกอบแบบ Type-safe พร้อมการรับประกันในขณะคอมไพล์
  • ไม่มีการทำซ้ำผ่านระบบแคชที่ชาญฉลาด
  • การทำงานแบบขนานอัตโนมัติโดยไม่ซับซ้อน
  • การทดสอบที่เป็นธรรมชาติสำหรับองค์ประกอบแต่ละตัว
  • ปรัชญาการออกแบบแบบ Response-first

คำถามจากชุมชนเกี่ยวกับสถาปัตยกรรมภายใน

นักพัฒนากำลังสำรวจอย่างแข็งขันว่า Mosaic ทำงานอย่างไรภายใต้ฝากระโปรง โดยเฉพาะกลไกการประกอบข้อมูล เฟรมเวิร์กใช้หน่วยที่ประกอบได้เรียกว่า Tiles ที่จัดการ caching, concurrency และการแก้ไข dependency โดยอัตโนมัติ สมาชิกชุมชนคนหนึ่งสังเกตเห็นความคล้ายคลึงกับ expression trees ของ LINQ แต่ตั้งคำถามว่าแนวทางนี้สมเหตุสมผลหรือไม่สำหรับแอปพลิเคชันที่ใช้ฐานข้อมูลเดียว

ผู้สร้างเฟรมเวิร์กได้ชี้แจงว่า Mosaic ไม่ได้สร้างโครงสร้างกราฟจริงๆ แต่ทำงานเสมือนว่ามีอยู่จริง มันใช้แคชระยะสั้นพร้อมกับ stubs ที่ทำให้ tiles รอซึ่งกันและกันในขณะรันไทม์ เพื่อให้มั่นใจว่าไม่มีการดำเนินการซ้ำในขณะที่เปิดใช้งานการประมวลผลแบบขนาน

กรณีการใช้งานเป้าหมายและการพิจารณาประสิทธิภาพ

การสนทนาเผยให้เห็นว่า Mosaic เปล่งประกายในสภาพแวดล้อมที่มีแหล่งข้อมูลหลายแหล่งมากกว่าแอปพลิเคชันแบบ monolithic ที่ใช้ฐานข้อมูลเดียว เฟรมเวิร์กดูเหมาะสมอย่างยิ่งสำหรับสถาปัตยกรรม fintech และ microservices ที่ต้องประสานงานแหล่งข้อมูลหลายสิบแหล่งพร้อมกัน

มันช่วยให้คุณสามารถรันคำขอ upstream ทั้งหมดนี้แบบขนานโดยไม่ต้องเขียน coroutine boilerplate และเข้าถึงผลลัพธ์ได้ทุกที่ในตรรกะของคุณโดยไม่ต้องส่งต่อการตอบสนองต่างๆ

ค่าใช้จ่ายด้านประสิทธิภาพมีน้อยมาก จำกัดอยู่ที่การค้นหา ConcurrentHashMap แบบ native ต่อการเรียกใช้ tile โดยแต่ละ map instance จะเป็นเอกลักษณ์ต่อคำขอ API การออกแบบนี้ช่วยให้มั่นใจว่าคำขอพร้อมกันหลายรายการไม่รบกวนซึ่งกันและกัน

การสนับสนุนการผสานรวม Framework:

  • Spring Boot
  • Ktor
  • Micronaut
  • Apache License 2.0

ความสนใจที่เพิ่มขึ้นในชุมชนการเขียนโปรแกรม

เฟรมเวิร์กกำลังดึงดูดความสนใจนอกเหนือจากระบบนิเวศ Kotlin โดยมีนักพัฒนาถามเกี่ยวกับโซลูชันที่คล้ายกันในภาษาอื่นๆ เช่น Rust และ .NET ความสนใจข้ามภาษานี้บ่งชี้ว่าแนวทาง response-first ของ Mosaic ตอบสนองความต้องการของอุตสาหกรรมในวงกว้างสำหรับรูปแบบการประสานงานข้อมูลที่ดีกว่า

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

Mosaic แสดงถึงการเปลี่ยนแปลงจากการคิดแบบ database-down แบบดั้งเดิมไปสู่สถาปัตยกรรม response-up ซึ่งอาจเสนอทางเลือกที่สะอาดกว่าการติดตั้ง GraphQL หรือเลเยอร์อื่นๆ ลงในระบบที่มีอยู่ สำหรับทีมที่ต้องจัดการกับ API sprawl และการประสานงานข้อมูลที่ซับซ้อน เฟรมเวิร์กนี้มอบแนวทางใหม่ที่น่าสนใจสำหรับการพัฒนา backend

อ้างอิง: Mosaic